Closed sylvainonweb closed 3 years ago
Bonjour, personne pour me répondre ?
Bonjour,
notre extension géoportail pour Leaflet intègre le plugin Proj4Leaflet qui permet de gérer l'affichage de données sur une carte ayant une projection définie par l'utilisateur.
Cependant, ce plugin ne surcharge pas l'interface Leaflet a proprement parler, qui elle ne gère que des coordonnées géographiques (voir doc setView de Leaflet).
Ainsi, pour s'en rendre compte, nous pouvons observer les exemples proj4Leaflet (https://kartena.github.io/Proj4Leaflet/examples/wmts/ par exemple) :
var crs = new L.Proj.CRS('EPSG:3006',
'+proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',
{
resolutions: [
4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8
],
origin: [-1200000.000000, 8500000.000000 ],
bounds: L.bounds( [-1200000.000000, 8500000.000000], [4305696.000000, 2994304.000000])
}),
map = new L.Map('map', {
crs: crs,
continuousWorld: true,
});
new L.TileLayer('https://api.lantmateriet.se/open/topowebb-ccby/v1/wmts/token/'+ token +'/?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=topowebb&STYLE=default&TILEMATRIXSET=3006&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=image%2Fpng', {
maxZoom: 9,
minZoom: 0,
continuousWorld: true,
attribution: '© <a href="https://www.lantmateriet.se/en/">Lantmäteriet</a> Topografisk Webbkarta Visning, CCB',
}).addTo(map);
//Set view over Stockholm Södermalm
map.setView([59.3167, 18.0667], 7);
--> La map est définie grace au plugin proj4Leaflet en EPSG:3006 --> map.setView() est toujours appelé en coordonnées géographiques.
Malheureusement, je ne vois pas de solution directe à votre problème...
Un contournement (très peu élégant) m'est venu à l'esprit (pas convaincu que cela marche...) :
map.fitBounds(mongeojson.getBounds())
, avec un geojson ajouté avec des features dont les coordonnées sont définies en L93 (voir cet exemple)...
Sinon, peut-être existe t-il d'autres plugins Leaflet pour faire le job...
Réponse très complète, même si elle ne m'arrange pas vraiment ! ps : je me doutais un petit peu de la réponse mais je voulais être sûr. Merci
Le fait que le CRS soit défini en Lambert 93 permet il d'appeler setView ou d'ajouter des marqueurs en utilisant des coordonnées Lambert 93 ou faut il obligatoirement le faire en WGS84 ?
Votre environnement
Type d'issue
[ ] Report de bug [ ] Requête d'une nouvelle fonctionnalité [X] Question
Contexte
Le code suivant (définition des coordonnées de paris et chalon en WGS 84) fonctionne correctement. `
`
Je m'attendais à pouvoir définir la variable chalon plutôt en Lambert 93 comme suit :
var chalon = [841126, 6633116];
(vu que le CRS est en Lambert 93).Pouvez vous me dire s'il est possible via votre librairie de ne pas avoir à convertir les coordonnées en WGS84 lors de l'appel à setView ou l'ajout de marqueurs ?