|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Comment calculer le facteur de zoom de la carte fonction d'un cercle |
| Débuté par Pascal BOULESTEIX, 01 juin 2026 15:40 - 4 réponses |
| |
| | | |
|
| |
Membre enregistré 1 259 messages |
|
| Posté le 01 juin 2026 - 15:40 |
Bonjour à tous J'utilise le composant carte qui affiche les cartes Google. Je souhaite tracer un cercle sur la carte au diamètre choisi par l'utilisateur. Comment calculer le facteur de zoom à affecter à la carte afin que le cercle remplisse la carte ?
-- Pascal Boulesteix Applications Visiolittoral et WNat |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 072 messages |
|
| Posté le 02 juin 2026 - 13:14 |
Bonjour, avez-vous essayé la fonction :
CarteAfficheZone (Fonction) https://doc.pcsoft.fr/fr-FR/?1000025535
Lorsque vous placez le cercle, vous récupérez les coordonnées du centre de ce cercle, vous soustrayez le rayon en mètres pour obtenir le X gauche, vous ajoutez le rayon pour le X droit, même opération pour les Y, puis vous faites appel à la fonction.
je n'ai pas testé, je n'utilise pas le champ carte.
Sinon, vous avez cette page sur laquelle l'outil de conversion vous donne la dimension affichée pour une tuile en fonction du niveau de zoom :
https://developers.arcgis.com/documentation/mapping-and-location-services/reference/zoom-levels-and-scale/
par exemple, pour une tuile Vecteur avec un niveau de zoom 23 = 35.2655368 m niveau de zoom 22 = 70.5310735 m attention, lisez la page, il y a des différence avec MapBox ou autre.
mais l'opération sera beaucoup plus ardue car il vous faut calculer la zone affichable par le champ carte (dimensions du champ carte et calcul des coordonnées affichables avec la fonction CarteInfoXY, calcul de la dimension du cercle, centrage de la carte et détermination du meilleur niveau de zoom selon les valeurs obtenues avec l'outil de conversion
Cdlt |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 320 messages |
|
| Posté le 02 juin 2026 - 15:56 |
Bonjour,
Cédric à raison, j'utilise la fonction CarteAfficheZone() pour zoomer automatiquement sur une zone où j'ai dessiné une forme.
Voici un bout de code allégé. En sachant que j'utilise ce calcul uniquement pour la France (à adapter s'il doit être utilisé en dehors)
gPosition est une geoPosition gPosition.Latitude = 48.85837 gPosition.Longitude = 2.294481
nRayon est un entier = 500 cCercle est un CarteCercle cCercle.Centre = gPosition cCercle.Rayon = nRayon CarteAjouteForme(Carte1,cCercle)
gPosNO est une geoPosition gPosSE est une geoPosition gPosNO.Latitude = (gPosition.Latitude+(nRayon/111320)) gPosNO.Longitude = (gPosition.Longitude-(nRayon/(111320*Cosinus(46)))) gPosSE.Latitude = (gPosition.Latitude-(nRayon/111320)) gPosSE.Longitude = (gPosition.Longitude+(nRayon/(111320*Cosinus(46)))) CarteAfficheZone(Carte1,gPosNO,gPosSE)
CdltMessage modifié, 02 juin 2026 - 15:57 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 259 messages |
|
| Posté le 02 juin 2026 - 17:50 |
Merci pour vos idées.
CarteAfficheZone rend bien visible la zone, mais ça ne zoome pas (Le carte.zoom reste le même)
-- Pascal Boulesteix Applications Visiolittoral et WNatMessage modifié, 02 juin 2026 - 17:51 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 259 messages |
|
| Posté le 02 juin 2026 - 18:27 |
Par contre CarteLimiteZone fait le job, mais avec une grosse zone tampon.
Par centre, le calcul des angles NO et SE est très correcte.

-- Pascal Boulesteix Applications Visiolittoral et WNat |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|