Ich habe eine Karte, die Markierungen programmgesteuert basierend auf Werten in meiner Datenbank platziert hat. Wenn Sie auf eine Markierung klicken, wird eine Detailseite für diese Position angezeigt.Google Maps API: Wie erkennt man, ob ein Marker durch einen anderen Marker verdeckt ist?
Mein Problem ist, dass wenn die Karte ausreichend herausgezoomt ist, Marker, die nahe genug beieinander liegen, als ein einzelner Marker erscheinen, der einige der Marker versteckt. Gibt es eine Möglichkeit, programmatisch zu sagen, ob ein Marker Teil einer Gruppe von Markern ist oder von anderen Markern versteckt/verdeckt wird?
Meine Absicht ist es für jeden dynamisch generierten Marker, so etwas zu tun:
marker.addListener('click', function() {
// if marker is not hiding any other markers
window.location.href = markerURL;
// else if it is hiding markers/is part of a group of markers
map.setZoom(15);
map.setCenter(marker.getPosition());
});
Ich habe die Marker API documentation geprüft, können aber keine nützliche Methoden zu finden scheinen. getClickable
und getVisible
geben immer true
in meinem Fall, unabhängig davon, ob ein Marker von einem anderen Marker abgedeckt ist. Irgendwelche Vorschläge? Vielen Dank!
Sie könnten die [MarkerClusterer] verwenden möchten (https://github.com/googlemaps/js-marker-clusterer), um zu verdeutlichen, wenn mehrere Marker gruppiert sind. – geocodezip
@geocodezip Vielen Dank für den Vorschlag. Ich dachte darüber nach, hoffte aber, dass es einen einfacheren Weg gäbe. Ich brauche keine Kontrolle über das Clustering, ich möchte nur wissen, ob es passiert ist oder nicht. Ich könnte am Ende diese Bibliothek benutzen, wenn ich keine bessere Lösung finden kann. – elethan
Es ist nichts in die API integriert, um so etwas zu tun und ich vermute, dass jeder Algorithmus, den Sie sich vorstellen, nicht so einfach oder so intuitiv ist wie der Marker-Clusterer – geocodezip