2010-09-23 4 views
6

Ich hoffe wirklich, jemand kann beraten, eine Google-Karte von einem versteckten div anzuzeigen.Google Kartenanzeige von einem versteckten Bereich

Ich habe eine Google Map, die ich einem Benutzer anzeigen möchte, wenn sie auf einen Link klicken, z. B. Karte anzeigen.

Die Karte in ein verstecktes div zu stecken funktioniert einfach nicht, also ging ich mit dem Verstecken der Karte -1000px auf einem absoluten css Wert der Position.

Das hat mir viel bessere Ergebnisse gegeben, aber wenn ich css verwende, um die Karte zurück zu bringen, habe ich nur davon angezeigt.

http://screencast.com/t/MTMyOGZmNW

Kann jemand mir auf dem besten Weg beraten eine versteckte Karte sichtbar werden zu lassen, nachdem ich eine Show peform?

Hoffe jemand kann beraten.

Danke

Antwort

25

Sie müssen nicht mit der absoluten Position stören und so weiter. Lassen Sie die div bis notwendig versteckt werden, zeigen sie dann und rufen google.maps.event.trigger(map, 'resize') (v3) oder map.checkResize() (v2)

Weitere Szenario in den Kommentaren erwähnt:

Stellen Sie sicher, rufen Sie google.maps.event.trigger(map, 'resize') vor dem Aufruf map.fitBounds() oder Sie werden unerwartete Ergebnisse .

+0

Hey Danke. Ich habe versucht map.checkResize() für V2 und ich bekomme Fehler Map ist nicht definiert. Und ja, ich weiß, dass ich v2 benutze. Irgendwelche Vorschläge ? – Lee

+0

Aghh ich habe es. Ich benutze ein jQuery-Plugin. $ .googleMaps.gMap – Lee

+0

Wann rufen Sie den google.maps.event.trigger (map, 'resize') auf? kannst du das auf das onclick-Ereignis des divs setzen, das versteckt ist (und dann angezeigt wird), wenn du auf den Link klickst? – Bill

2

Warum verzögern Sie das Rendern der Karte, bis das Div angezeigt wird?

grober Code:

$("button").click(function() { 
    $(mapDiv).show(); 
    new google.maps.Map(mapDiv, opts); 
}); 
+1

Und wenn es immer wieder ausgeblendet und angezeigt wird? Erstellen Sie nicht viele Kartenobjekte, ohne sie zu zerstören. – Mawg