7 votes

Comment détecter le mouvement de Google MapView dans Android ?

J'aimerais mettre à jour dynamiquement la carte/charger de nouvelles superpositions de cartes chaque fois que mon utilisateur la déplace d'une certaine distance. Comment dois-je m'y prendre ? Existe-t-il un écouteur pour chaque fois que l'utilisateur déplace la carte ? Le plus souvent, je me contenterai de mesurer la distance entre les points centraux.

Merci !

8voto

Theo Points 2839

Essayez ceci pour détecter les mouvements de la carte : http://pa.rezendi.com/2010/03/responding-to-zooms-and-pans-in.html

Au démarrage et après le déplacement de la carte, vous devez enregistrer le centre actuel de la carte. Comme le suggère l'article, suivez ACTION_UP pour déterminer quand l'utilisateur a terminé un déplacement de carte. Ensuite, comparez le nouveau centre de la carte avec l'ancien centre de la carte. Pour obtenir le centre de la carte, utilisez la fonction getMapCenter() de MapView :

[http://code.google.com/Android/add-ons/google-apis/reference/com/google/Android/maps/MapView.html#getMapCenter()](http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/MapView.html#getMapCenter())

EDIT : J'ai fait un peu de travail supplémentaire sur ce sujet, et j'ai une application complète avec du code pour votre plaisir. Ce billet de blog explique une solution de temporisation à ce problème et contient un lien vers la source Github : http://bricolsoftconsulting.com/extending-mapview-to-add-a-change-event/

0voto

Femi Points 42054

L'interface de la carte ne comprend malheureusement pas d'écouteurs pour surveiller les actions de la carte (zoom/pan). Vous devrez mettre en place une sorte de minuterie qui vérifie les niveaux de centre/zoom pour savoir si les choses ont changé et les mettre à jour en conséquence.

0voto

Phil Points 11964

Pour ce faire, vous pouvez remplacer l'option onTouch(...) dans votre Activity (de sorte que, chaque fois que l'utilisateur effectue un panoramique de la carte, vous puissiez recalculer les limites de la carte). Il faudrait connaître le niveau de zoom de la carte, ses limites, etc., pour pouvoir charger ces superpositions en fonction des distances de la carte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X