24 Jul 08

Google Maps API: Der richtige Zoom-Wert damit alle Marker sichtbar sind

Motiviert durch die Anfrage eines Kollegen habe ich mir Heute ein paar Gedanken über ein Problem gemacht, vor dem sicherlich schon einige Entwickler standen. Man visualisiert irgendetwas in Form von Markern auf einem Google Maps Kartenausschnitt. Nun möchte man eine Übersicht bieten und soweit rauszoomen, dass alle Marker sichtbar sind. Nur wie?

 

Die Google Maps API bietet dafür schon ein paar sehr nützliche Methoden, ein wenig Arbeit muss man aber dennoch investieren. Das zentrale Element dieses Lösungsweges ist die Methode getBoundsZoomLevel(bounds) des GMap2 Objekts. Diese erwartet einen Parameter vom Typ GLatLngBounds.

 

GLatLngBounds repräsentiert ein Rechteck anhand von zwei Koordinatenpaaren, nämlich der Süd-West und Nord-Ost Ecken. Die getBoundsZoomLevel(bounds) Methode ermittelt für dieses Rechteck den benötigten Zoom-Wert, um alles innerhalb dieses Bereichs anzuzeigen. Das ist der Trick. Doch wie kommt man an geeignete Werte für das bounding-rectangle? Eine geeignete Schleife hilft hier sicher weiter ;-)

 

Tipp: Falls der gewünschte Kartenausschnitt auch noch zentriert werden soll, bietet sich die Methode getCenter() des GLatLngBounds Objekts an.

 

 

 

Posted by ryker in entwicklung

No Comments Yet - You can be the first to comment!

Leave a comment