Die deutsche Google Maps Community.
Die Möglichkeiten sind da!
Forum Suche | Forum Übersicht | Anmerkung: registrierte Benutzer können sich über neue Einträge benachrichtigen lassen | Anmerkung: registrierte Benutzer können sich über neue Einträge benachrichtigen lassen
Übersicht ::
Google Maps API ::
Google Maps API ::
Problem: map.setcenter berechnet bei einem DIV die Mitte falsch
moderiert von:
Steffen
Problem: map.setcenter berechnet bei einem DIV die Mitte falsch |
||
|---|---|---|
| drknickel | verfasst: 25.06.2009, 10:31 | |
Neu hier
registriert: Jun. 2009
Beiträge: 1
Status: offline letzter Besuch: 25.06.09 |
Hallo zusammen, toll das es eine Google Maps Community hier gibt, ich habe ein Problem und weiss da nicht weiter, vielleicht habt ihr eine Idee :) So geht ich vor: Das Google-Maps-DIV wird folgendermaßen eingebunden: // Das DIV mit der Google-Map wird also erst mal nicht ausgegeben. Eine Javascript-Funktion im Hintergrund soll nun das DIV dynamisch einblenden. Problem: Wenn sich die Google-Map in einem DIV mit "display:none" befindet, berechnet "map.setCenter(point, 11)" die Mitte scheinbar falsch. Der Mittelpunkt wird nicht auf die Mitte des DIVs geschoben, sondern ordnet sich im linken oberen Eck an. Lasse ich im äußeren DIV das "display:none" weg, dann funktioniert alles richtig. Warum möchte ich die Map erstmal ausblenden: Ich verwende die Funktion "geocoder.getLatLng(…)" der Google-API zur Adressenberechnung und -ausgabe. Wenn eine Adresse nicht gefunden wird, will ich die ganze Karte ausblenden. Das soll aber aufgrund der Ladeverzögerung genau anderst herum sein. Also wenn eine Adresse gefunden wurde, dann soll das DIV eingeblendet werden. Habt ihr eine Idee was ich da machen kann? Danke & LG drknickel editiert von: drknickel, 24.06.2009, 21:32 Uhr |
|
|
|
|
|
| Pil | verfasst: 25.06.2009, 16:33 | |
Häufiger hier
registriert: Jun. 2009
Beiträge: 16
Status: offline letzter Besuch: 20.09.10 |
Diese Frage gehört zu den FAQ in der Maps-API-Gruppe. Wenn die Map zunächst auf display:none gesetzt wird, weiss die API die Größe der Map nicht. Beim Sichtbarmachen der Map wird daher zunächst von einer Breite und Höhe 0 des divs ausgegangen, das die Map enthält. Zwei Möglichkeiten: 1. entweder, nachdem die Map sichtbar gemacht wird checkResize() aufrufen, oder 2. der Map von vorneherein eine definierte Größe mitgeben, etwa so var map = new GMap2(document.getElementById("mapdiv"), {size:new GSize(400, 500)}); |
|
|
|
|
|
User online:
Diese Angaben basieren auf den Useraktivitäten der letzten 10 Minuten