PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Champ carte et zoom "automatique" sur position
Champ carte et zoom "automatique" sur position
Débuté par JULIEN, 08 jan. 2016 23:09 - 8 réponses
Membre enregistré
197 messages
Popularité : +3 (3 votes)
Posté le 08 janvier 2016 - 23:09
Bonsoir à tous et merci par avance pour votre aide,

Sous WB 21, je dois réaliser un site+appli mobiles comprenant de la géolocalisation (livreur/client), j'ai bien envie d'utilisé le champ carte qui permet de s'intégrer à mon site et appli sauf qu'un problème me gêne...le niveau de zoom lors de l'initialisation du champ carte.

En effet, que ce soit soit lors de l'affichage du champ ou lors de l'affichage des marqueurs(client+livreur), j'affiche des géopositons mais le champs carte reste avec une vue de l'Europe entière...

Je souhaiterai pouvoir zoomer au moins sur la ville automatiquement à l'affichage des marqueurs (ou des geopositions) car ce n'est vraiment pas pratique de contraindre le client de cliquer plusieurs fois sur le bouton zoom + avant d'avoir une vue qui serve à quelque chose.

Malgré mes recherches dans l'aide et divers forums, je n'ai encore trouvé aucune solution...j'espère que vous saurez me faire part de vos idées sinon je pense que j'abandonnerai le champ carte qui est trop contraignant à ce niveau. (d'ailleurs j'ai déjà essayé d'intégrer googlemap via un champ html mais impossible de modifier dynamiquement la champ affiché par programmation...j'ai également essayé un iframe mais il n'accepte pas les url de type https, qu'utilise googlemap...bref la galère...)

Merci par avance pour votre temps et bonne soirée,
Posté le 01 mars 2016 - 17:20
Bonjour
Je viens de découvrir votre pb car j'ai le même. Avez vous trouvé la solution depuis?
Membre enregistré
197 messages
Popularité : +3 (3 votes)
Posté le 01 mars 2016 - 18:03
Bonjour Olivier,

Malheureusement non...du coup je passe directement par Googlemap...
Posté le 06 mars 2016 - 20:58
Bonjour,

J'ai réussi à manipuler le niveau de zoom de la carte par programmation avec la propriété "..Zoom" sur le champ carte directement. À savoir que l'entier à fournir à cette propriété (selon mes tests) est le nombre de fois qu'il faut « scroller » sur la map pour arriver au niveau de zoom voulu. Par exemple pour moi c'était : 15 donc :

// Dans le code d'initialisation du champ carte
Mon_Champ_Carte..Zoom = 15

// Ou ...
MoiMême..Zoom = 15


Bon dev !
Membre enregistré
197 messages
Popularité : +3 (3 votes)
Posté le 07 mars 2016 - 09:41
Bonjour Jules,

Merci pour ta participation, il me semble que j'avais essayer cette solution sans succès mais je n'en suis pas certain donc je vais tenter à nouveau.

Cela fonctionne à la fois pour IOS et Android?

Cordialement,
Posté le 07 mars 2016 - 14:00
J'avoue ne l'avoir testé que sur Webdev, cependant dans la doc. de la propriété ..zoom on peut voir les petits pictos disant que cette propriété est compatible avec Windev, Webdev Serveur, Webdev Navigateur, Android, IOS et php pour les champs cartes. Du coup, selon la doc. ça fonctionnerai de la même manière sur Android et IOS.

La doc. en question : http://doc.pcsoft.fr/fr-FR/?1000017201

Tiré de cette doc. : 
« [...]
Pour un champ Carte :
cette valeur est comprise entre 1 (affichage de la terre entière) et 21.
cette valeur peut correspondre à la constante suivante :
zoomAdapteTaille - Adapte le zoom du champ Carte pour que tous les marqueurs soient visibles en même temps. »
Posté le 26 février 2017 - 22:40
Bonjour, pour zoomer sur le marqueur, il faut écrire :
//Ajoute le marqueur sur la carte
CarteAjouteMarqueur(Carte1,MonMarqueur)

//Zoom sur le marqueur
CarteAffichePosition(Carte1,MonMarqueur)
Carte1..Zoom = 12

La réponse vient tard, mais peut servir pour les prochains.
Bon développement......
Posté le 27 février 2017 - 09:31
Goblet a utilisé son clavier pour écrire :
Bonjour, pour zoomer sur le marqueur, il faut écrire :
//Ajoute le marqueur sur la carte
CarteAjouteMarqueur(Carte1,MonMarqueur)

//Zoom sur le marqueur
CarteAffichePosition(Carte1,MonMarqueur)
Carte1..Zoom = 12

La réponse vient tard, mais peut servir pour les prochains.
Bon développement......


et bien oui, cela va peut être m'éviter de chercher quand je vais en
avoir besoin (bientôt ?)

Mais du coup mon besoin est un peu différent ... je voudrais localiser
tous les clients d'un commercial sur une carte(donc plusieurs
marqueurs) Et donc je voudrais que la carte se positionne en quelque
sorte au milieu de tous ces points.

Peut être que ce sont des maths ?
soit n positions x, y calculer la position médiane
Posté le 23 mars 2017 - 17:12
Bonjour,

Une fois que les marqueurs sont placés sur la carte il suffit de faire :

CARTE..Zoom = zoomAdapteTaille

La carte zoom alors sur les marqueurs de manière à tous les avoir sur la carte le plus rapproché possible.