Cluster de marqueurs dans Google Maps Android v2
J'ai à la place des différents marqueurs sur une GoogleMap à partir de Google Maps Android v2 API. Le problème est que plusieurs repères sont mis à la même position (lat/lng), de sorte que l'utilisateur ne voit que le "nouveau" marqueur.
Est-il une possibilité (dans le meilleur des cas: une bibliothèque) que les clusters de différents marqueurs de la même région (par rapport à la zoomlevel)?
J'ai déjà lu sur le MarkerClusterer, mais il est conçu pour l'API JavaScript.
OriginalL'auteur Greeny | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
Google a fourni un utilitaire pour le faire dans le cadre de leur Google Maps API Android Utility Library:
https://developers.google.com/maps/documentation/android/utility/marker-clustering
à la source au:
https://github.com/googlemaps/android-maps-utils
C'est pour les Cartes v2. Pourquoi pensez-vous que c'est pour la v1?
Lorsque je visite le dev de google, les pages que vous avez écrit. Et j'ai cliquer sur le lien "Obtenir la Clé API". Ils ont dit "v1 Clé n'est pas disponible" Donc j'ai pensé que l'information est seulement v1. Donc, je peux m'adapter cette solution à mon v2, droit? Je vais l'essayer. Merci pour votre information.
Parfois google bibliothèque place du cluster marqueur au mauvais endroit
Avez-vous signalé ce problème à github.com/googlemaps/android-maps-utils/issues?state=open?
OriginalL'auteur Intrications
Je n'ai pas eu la chance de l'essayer encore, mais il semble très prometteur:
http://code.google.com/p/android-maps-extensions/
De ce post
Ici est d'une autre bibliothèque avec certains assez cool à la recherche de cluster animations:
https://github.com/twotoasters/clusterkraf
Oui, j'ai ajouté le lien vers votre post. Comme je l'ai dit je n'ai pas eu le temps de l'essayer encore, mais je vais très bientôt. Je vais vous laisser savoir quand je fais les.
Le problème avec l'ensemble de ces solutions de clustering comme la carte d'extensions et de Clusterkraf est qu'ils ne prennent pas en compte le problème principal à la question d'origine d'aborder des Marqueurs, avec les mêmes coordonnées.. Imaginez une carte qui affiche des films. Il se pourrait que 10 films jouez à une seule salle de cinéma. Que le cinéma a une adresse géocodes à une coordonnée. De Clustering ne va rien faire pour les 10 marqueurs que tous les occupent la même place. Une expansion de l'araignée effet pour ces 10 marqueurs serait juste parfait. cette question a été traitée dans les Cartes v3 avec JS.
Il n'y a rien qui vous empêche d'ajouter de l'effet à ces bibliothèques. J'ai fait un PoC dans l'AME pour montrer cluster
Marker
s après avoir cliqué sur le cluster. Voir la démo app.OriginalL'auteur DiscDev
Je suis un peu en retard, mais Clusterkraf est une grande bibliothèque, check it out:
https://github.com/twotoasters/clusterkraf
C'est très joli.
OriginalL'auteur Androiderson
Pour les autres qui sont à la recherche pour la mise en œuvre de leur propre code de clustering. Veuillez vérifier mes clustering algo très rapide et fonctionne étonnamment bien.
J'ai regardé les différentes bibliothèques et les a trouvés si complexe ne comprenais pas un mot, donc j'ai décidé de faire mon propre algorithme de clustering. Voici mon code en java.
OriginalL'auteur user1530779
Vous devez suivre ces étapes:
Android studio /Gradle:
Ajouter un simple marqueur clusterer
Voici un résumé des étapes nécessaires:
ClusterItem
pour représenter un marqueur sur la carte. Le cluster élément renvoie la position du marqueur comme un LatLng objet.ClusterManager
de groupe du cluster éléments (marqueurs) en fonction du niveau de zoom.OnCameraChangeListener()
à laClusterManager
, depuisClusterManager
implémente l'auditeur.OnMarkerClickListener()
à laClusterManager
, depuisClusterManager
implémente l'auditeur.ClusterManager
.En regardant les étapes plus en détail: Pour créer notre simple amas de dix marqueurs, d'abord créer un
MyItem
classe qui implémenteClusterItem
.Dans votre activité sur la carte, ajouter le
ClusterManager
et nourrir le cluster éléments. Note de l'argument de type<MyItem>
, qui déclare la ClusterManager pour être de typeMyItem
.Démo
https://www.youtube.com/watch?v=5ZnVraO1mT4
Github
Si vous avez besoin de plus d'informations /projet terminé, veuillez visiter: https://github.com/dimitardanailov/googlemapsclustermarkers
Si vous avez d'autres questions, veuillez me contacter.
Je ne comprends pas votre question, mais vous pouvez ajouter des marqueurs à google maps si vous ne voulez pas les clusters pour eux. Si vous voulez avoir un cluster de marqueurs dont vous avez besoin pour utiliser
ClusterManager
Je suis d'erreur .addItems(offsetItem) dans android studio et il me dit de jeter offsetitem de la Collection<MyItem>. Pouvez vous s'il vous plaît me suggérer quelle est l'erreur ?
Je tiens à m'excuser pour la lenteur de la réponse, mais j'ai été hors du bureau. Pouvez-vous partager la capture d'écran avec l'erreur ?
OriginalL'auteur d.danailov
Pour ceux qui ont des problèmes avec l' Clusterkraf (je ne peux pas le faire fonctionner!) et pour ceux qui ne peuvent pas utiliser android-cartes-extension car il est livré avec une version personnalisée de Jouer à des Services lib, je veux suggérer cette bibliothèque, qui est minuscule, bien écrit et fonctionne hors de la boîte:
Après une matinée consacrée à essayer en utilisant les deux autres libs, celui-ci a sauvé ma journée!
L'AME a sa propre implémentation de l'API Google Maps, et il est livré avec son propre google-play-services.jar. J'ai eu des ennuis de référencement AME de mon projet qui fait référence à l'origine de Google Play Services lib pour les notifications push, par exemple...
AME utilise non modifiée google-play-services.jar. Si vous utilisez d'autres services, il suffit de retirer google-play-services_lib projet et d'utiliser android-cartes de l'extension comme un remplacement. Je suppose que c'est mauvais si il y avait une bibliothèque de travail de la même façon par exemple, pour le jeu d'Api, mais je suis en train de travailler sur le découplage.
J'ai donné une chance à l'AME, et Clusterer outil et faut avouer que les Clusterer eu mes préférés en un clin d'œil, il n'y avait presque pas de temps d'installation et l'auteur utilise la même logique que moi, pour la détection de collision ( plage de pixels de distance ). Seulement 3 classes sans dépendances, je vais régler ça plus pour l'adapter à mon cas d'utilisation, bien que de faire un rendement élevé. @MaciejGórski vous l'avez fait aussi un excellent travail avec l'AME, mais votre lib me conviendrait mieux si vous avez décidé pour les outils de l'approche plutôt que d'étendre la Carte, mais vous avez beaucoup d'autres choses intéressantes en dehors de clustering sur le conseil et le regroupement dynamique est également must-have!
OriginalL'auteur lorenzo-s
OriginalL'auteur Mohammad
Pour ceux d'entre vous qui ont des problèmes avec la performance de la Google Maps API Android Utilitaire de la Bibliothèque, nous avons créé notre propre rapide de clustering bibliothèque: https://github.com/sharewire/google-maps-clustering. Il peut facilement manipuler 20000 marqueurs sur la carte.
OriginalL'auteur makovkastar