2010-08-04 9 views
6

Ich versuche, eine Ebene auf meine Google Maps zu legen, um es zu verdecken. Es muss keine Interaktion mit Google Maps geben, es ist nur eine Ebene über der anderen.Google Maps Overlay-Ebene

, was ich jetzt habe:

<div id="map"> 
    <div id="overlay"></div> 
</div> 

in der Karte div lege ich meine Google-Karten und die Overlay-Schicht hat einen Hintergrund so groß wie die Karte div, aber die Google Maps hält mich an der Spitze setzen.

Wer eine Idee was kann ich dagegen tun?

+0

haben Sie versucht, mit Z-Index zu spielen? –

Antwort

10

Die API überschreibt alle Elemente in dem DIV, die Sie der Karte als Container zuweisen. die Karte decken Sie bräuchten Overlay div außerhalb der Karte div mit Position zu bringen: absolute

+4

Diese Antwort ist vom 4. August 2010. Google hat die Option noClear seitdem hinzugefügt. Danke für die Abstimmung. – Marcelo

11

Google Maps API V3 unterstützt eine Option noClear genannt:

Wenn das stimmt, lösche den Inhalt der Karte div.

Verwenden Sie es mögen:

var myLatlng = new google.maps.LatLng(-34.397, 150.644); 
var myOptions = { 
    zoom: 8, 
    center: myLatlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    noClear: true, 
}; 
var map = new google.maps.Map(document.getElementById("map_canvas"), 
    myOptions); 

jedoch semantisch fühlt es besser, die div # Overlay als nächste Geschwister der Karte div zu setzen, wie @Marcelo vermuten lässt.

+0

+1, diese Lösung hat mir sehr geholfen, da das 'div' innerhalb der' map' Grenzen bleibt, danke viel. –