#1 Wed 14 August 2019 08:29
- chris_siveco
- Juste Inscrit !
- Date d'inscription: 13 Aug 2019
- Messages: 6
Calculer Extent depuis Zoom level et Point central
Bonjour,
Avant d'afficher une map, comment calculer le rectangle (Extent) correspondant à un point central (latitude/longitude) et un niveau de zoom ?
par exemple, en javascript API, j'ai un Point(X, Y) central, et un zoom level. Quelles sont possibilités pour ouvrir la map sur un Extent qui corresponde à ce Point/Zoom ?
Je n'ai trouvé ni formules, ni fonction dans l'API javascript.
Christophe
Hors ligne
#2 Wed 14 August 2019 08:37
- Arnaud_D
- Membre
- Date d'inscription: 9 Mar 2009
- Messages: 88
Re: Calculer Extent depuis Zoom level et Point central
Bonjour,
Je ne suis pas certains que ça fonctionne avec l'API Javascript mais je pense que tu peux regarder ici :
https://enterprise.arcgis.com/fr/portal … meters.htm
Arnaud DESSENT
Hors ligne
#3 Wed 14 August 2019 10:41
- s10
- Participant occasionnel
- Lieu: France
- Date d'inscription: 28 Nov 2018
- Messages: 23
Re: Calculer Extent depuis Zoom level et Point central
Hey, est-ce que tu as absolument besoin d'avoir l'étendue ?
Si c'est juste pour zoomer sur le point au bon seuil de zoom apparemment tu peux utiliser "centerAndZoom"
https://developers.arcgis.com/javascrip … terandzoom
Code:
var location = new Point(zoomLong,zoomLat); map.centerAndZoom(location,16);
Si c'est au démarrage de la carte :
Code:
var view = new MapView({ zoom: 10, center: [-120, 34], map: map });
https://developers.arcgis.com/javascrip … pView.html
Sinon si par hasard tu utilises leaflet (et esri-leaflet) le plus simple quand tu lances la carte:
Code:
this.myMap.setView(new L.LatLng(47.322047, 5.04148), 12);
Dernière modification par s10 (Wed 14 August 2019 10:45)
Hors ligne
#4 Wed 14 August 2019 11:34
- chris_siveco
- Juste Inscrit !
- Date d'inscription: 13 Aug 2019
- Messages: 6
Re: Calculer Extent depuis Zoom level et Point central
Oui effectivement, on peut lire que si on veut créer une map, on a le choix soit de
-Définir le niveau d’échelle et centrer la carte
Soit
-Définir l'étendue
Oui on peut utiliser CentreAndZoom, Merci pour les réponses.
Mais ce n'est pas cela qui pose problème. C'est à la création.
J'utilise le javascript API, sans leaflet.
Cela vient du fait que parfois nos map sont créées sans layer de fond de carte (basemap), et dans ce cas, l'instanciation de l'objet Map se fait correctement uniquement si c'est la version avec Extent, mais pas si c'est la version echelle/centre.
Par exemple dans la création avec :
var map = new Map("map", {
center: [-98,40]
, zoom:18
});
le zoom n'est pas pris en compte (il suffit d'ailleurs d'essayer avec les sample d'ESRI ici : https://developers.arcgis.com/javascrip … no_basemap
Par contre si je mets une basemap ça fonctionne bien, le zoom est bien pris en compte :
var map = new Map("map", {
center: [-98,40]
, zoom:18
,basemap:"streets"
});
C'est pour cela que j'ai besoin de créer des cartes avec une Extent pour mes cartes sans basemap mais avec comme données initiales centre/zoom.
Dernière modification par chris_siveco (Wed 14 August 2019 11:38)
Hors ligne
#5 Wed 14 August 2019 13:14
- Arnaud_D
- Membre
- Date d'inscription: 9 Mar 2009
- Messages: 88
Re: Calculer Extent depuis Zoom level et Point central
Dans ce cas là en bricolant un peu tu peux trouver une solution de contournement.
Si ton problème apparait quand tu n'as pas de basemap, il te suffit d'en créer une "vide" (sans données affiché) qui donne l'impression qu'il n'y a pas de basemap.
Comme ça tu résout ton problème d'extent et visuellement parlant qu'il y ait une basemap ou pas il n'y a pas de différence.
Pour la création de la basemap vide 2 options :
- soit tu la crée de toue pièce
- soit tu utilise l'éditeur de tuile vectoriel d'ESRI https://developers.arcgis.com/vector-tile-style-editor/, tu désactive tous les calques d'un fond de plan et le tour est joué.
Arnaud DESSENT
Hors ligne
#6 Wed 14 August 2019 14:12
- s10
- Participant occasionnel
- Lieu: France
- Date d'inscription: 28 Nov 2018
- Messages: 23
Re: Calculer Extent depuis Zoom level et Point central
En effet, tu peux rajouter un "map.setScale(10000000);" pas extra mais si tu récupères tes échelles tu sauras à quel niveau de zoom ça correspond
https://www.esri.com/arcgis-blog/produc … s-updated/
Hors ligne
#7 Wed 14 August 2019 16:10
- chris_siveco
- Juste Inscrit !
- Date d'inscription: 13 Aug 2019
- Messages: 6
Re: Calculer Extent depuis Zoom level et Point central
Oui ce sont des idées à tester,.. faute d'avoir la formule exacte qui passe d'un centre/zoom à bounding extent.
Si quelqu'un sait faire ce calcul, je suis preneur.
Sinon aussi je peux calculer une Extent approchée en faisant l'impasse sur le zoom et définir arbritrairement une zone constante (distance) autour du centre spécifié.
En tout cas merci pour vos réponses.
Christophe
Hors ligne