banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB