Je développe une application Android et j'utilise Google Maps Android API Utility Library.Android Obtenir les marqueurs qui ne sont pas en cluster
Pour être plus précis, j'utilise la partie cluster de cette bibliothèque. Maintenant à ma question:
Je suis intéressé par les marqueurs qui sont montrés sur la carte mais qui ne sont pas actuellement groupés. J'ai essayé différents trucs mais je ne peux pas m'en passer la tête. La chose qui fonctionne est de sauvegarder tous les éléments de marqueur rendus dans une liste, puis de comparer les positions des marqueurs aux limites latérales de la carte, si les marqueurs sont à l'intérieur des limites de l'écran, les informations des marqueurs seront ajoutées dans une autre liste. pour être affiché plus tard dans une liste. Le problème avec cela est lorsque je fais un zoom arrière, les marqueurs sont toujours dans le tableau renderedPersonItems et apparaîtront dans la liste même si ces marqueurs sont maintenant en cluster. Je ne peux pas effacer renderedPersonItems parce que les marqueurs ne sont restitués qu'une fois dans un cycle de vie. Donc je cherche une solution différente. Voilà ce que je suis arrivé à ce jour:
code dans DefaultClusterRenderer:
@Override
protected void onBeforeClusterItemRendered(PersonItem personItem, MarkerOptions markerOptions){
markerOptions.title(personItem.personName);
if(!renderedPersonItems.contains(personItem)){
renderedPersonItems.add(personItem);
}
}
Code de l'activité principale:
LatLngBounds personOnScreenBounds = googleMap.getProjection().getVisibleRegion().latLngBounds;
for(PersonItem person : clusterPersonRenderer.getRenderedPersonItems()){
if(PersonsOnScreenBounds.contains(person.getPosition())){
personMarksOnScreen.add(getPersonObjectWithId(person.personId));
}
}
Merci à l'avance!
J'ai vérifié cette bibliothèque maintenant et il semble avoir tout ce dont j'ai besoin, maintenant j'ai besoin de trouver du temps pour réécrire mon code, merci! :) – dancii