google maps - API( Autozoom )

Hi !

Also die Maps-API besitzt eine Methode, welche dir zu einer Bounding-Box ein passenden Zoomlevel zurückgibt :

Code:
GMap2.getBoundsZoomLevel(bounds)

Du berechnest also einfach die Bounding-Box deiner Marker bzw. deines Kreises und übergibst diese der o.g. Methode und erhälst einen Zoomlevel auf den du dann zoomen kannst.

Im übrigen empfiehlt es sich immer, eine feste API-Version anzugeben ( statt 2.x z.B. 2.10), damit dein Code auch morgen noch läuft. Hab da witzige Erfahrungen machen müssen !

Eine sehr, sehr gute Änderungsliste der Versionen findest du hier :

http://mapki.com/wiki/Changelog

Ich hoffe das hilft dir ein wenig weiter !

Krösi
 
Hi Krösi,

diese Methode verwende ich in meinem Code ja auch:
Code:
this.setCenter(
                  rect.getCenter(),
                  this.getBoundsZoomLevel(rect)
                );

...bloss wurde das Objekt, welches mir die bounds liefert, umbenannt.
 
Hi Sven,

sorry, das hatte ich übersehen ...

Du iterierst also über alle Marker und ermittelst die gesamte Boundig-Box, jetzt ist mir auch dein Code klar geworden.

Wenn die Marker-Koordinaten jedoch serverseitig aus einer Datenbank gelesen werden, dann könnte ich ja die Bounding-Box auch schon serverseitig ermitteln (entlastet den Client) oder auf dem Client beim Hinzufügen der Marker. Dadurch würde ich mir den Aufruf von obfuskierten Methoden oder Eigenschaften ersparen und wäre unabhängig von der API-Version.
Aber im Prinzip hast du das Problem ja bereits gelöst. Ich muss mir mehr Mühe geben beim Lesen der Posts !

Krösi
 
Jo, da hast du natürlich recht...wenn die Marker von vornherein bekannt sind, braucht man das nicht :)

Ich wollte die Funktion allerdings etwas universeller einsetzbar gestalten, so können bspw. auch vom User gesetzte Marker beim Zoomen berücksichtigt werden.(Wobei ich das noch garnicht getestet habe :-( )
 
Zurück