Aller au contenu

Centrer une Maps sur 2 points.


Profete162

Recommended Posts

Salut à tous,

Je commence à bien m'amuser avec les cartes Google, mais suis maintenant face à un petit souci.

J'ai bien compris que l'on peut centrer sa carte en un point désiré avec un niveau de zoom X:

            monControler.setZoom(Zoomlevel);
           monControler.setCenter(point);

Il y a même plein d'autres options sympa: http://code.google.com/intl/fr-FR/android/add-ons/google-apis/reference/com/google/android/maps/MapController.html

Maintenant, ma question est ma suivante, j'aimerais afficher dans la carte ma position et un point.

Et il faudrait que ma carte affiche les 2 avec un zoom "malin"

J'ai déjà réfléchi à de nombreuses méthodes pour calculer la distance entre moi et le point, et trouver un zoom adapté, et centrer sur le point milieu, mais je me demande si il n'y a pas plus simple. Car là, je suis parti dans des calculs savants et complexes tout en étant convaincu qu'il doit y avoir une solution simple.

Merci d'avance pour vos idées.

Profete162

Lien vers le commentaire
Partager sur d’autres sites

Bon, bin apres des heures de folie, c'est juste le "mapView.getController().setZoom(16);" qui n'est pas pris en compte.

Je dois faire un "redraw" de la carte ou quelquechose du genre?

mapView.invalidate() ne semble pas fonctionner non plus!

Je dois systématiquement taper sur un des boutons de zoom pour afficher ma vue correctement

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

Pour résumer mon problème:

Je mets ceci n'importe ou dans le code:

              double lat1 = gpGare.getLatitudeE6(); 
             double lat2 = gptest.getLatitudeE6(); 
             double lon1 = gpGare.getLongitudeE6(); 
             double lon2 = gptest.getLongitudeE6();

           GeoPoint gpMiddle= new GeoPoint((int)((lat1+lat2)/2),(int)((lon1+lon2)/2));

           //DrawPath(gpMe, gpGare, Color.BLUE, mapView);
           monControler.setCenter(gpMiddle);
           monControler.setZoom(16);
           maMap.invalidate();

et ca m'emmène au bon endroit, mais avec un zoom qui était utilisé avant.

Je cliques sur un des boutons de zoom et tout se remet correctement.

A devenir fou!

Lien vers le commentaire
Partager sur d’autres sites

Ca y'est, une soirée de perdue.

Je mets l'explication ici pour éviter à d'autres de subir la même humiliation:

J'en avais marre de switcher entre ma Key API de développement et de débug, j'ai donc laissé la mauvaise en me disant que juste la carte ne s'afficherait pas.

Mais en fait, c'est beaucoup plus vicieux, il semble que le zoom et le refresh en dépendent aussi.

J'ai juste remis la bonne clef et tout à fonctionné.

Une soirée à foutre à la poubelle!

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Oui, effectivement, c'est pas clair dans mon post précédant, mais ca fonctionne nickel.

Juste qu'il faut pas se gourer dans les clefs, car je débuggais sans les maps et j'affichais mon overlay, mais il mettait jamais le bon span. Du coup, le simple fait d'afficher la carte derrière affichait le bon zoom, cela m'a paru bizarre.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...