2012-12-04 16 views
7

これはGoogleマップAPI v3にについてです:あなたはPolylinesPolygonsMapLabelsまたはカスタムGoogleマップ内の他のオーバーレイ要素の任意の様々なを描くときAPIを使用したカスタムGoogleマップレイヤー?

、それはmapPane上に描画します。オーバーレイオブジェクトを描画し、そのレイヤーを簡単に有効/無効(表示/非表示)できる複数のカスタムレイヤーを何とか作成することは可能ですか?カスタム層についてhttps://developers.google.com/maps/documentation/javascript/layers

しかし、何も:

は、私はここでレイヤーに関するドキュメントを参照してください。

答えて

6

あなたはそれを行うために、カスタムOverlayView作成することができます。1回だけ1 setMapでそれらを表示または非表示にすることができ、LayerOverlayにあなたのオーバーレイを追加すると

var LayerOverlay = function() { 
    this.overlays = []; 
} 
LayerOverlay.prototype = new google.maps.OverlayView(); 
LayerOverlay.prototype.addOverlay = function (overlay) { 
    this.overlays.push(overlay); 
}; 
LayerOverlay.prototype.updateOverlays = function() { 
    for (var i = 0; i < this.overlays.length; i++) { 
    this.overlays[i].setMap(this.getMap()); 
    } 
}; 
LayerOverlay.prototype.draw = function() {}; 
LayerOverlay.prototype.onAdd = LayerOverlay.prototype.updateOverlays; 
LayerOverlay.prototype.onRemove = LayerOverlay.prototype.updateOverlays; 

を:

var layer1 = new LayerOverlay(); 
layer1.addOverlay(createMarker()); 
layer1.addOverlay(createMarker()); 
layer1.addOverlay(createMarker()); 

// hide all markers 
layer1.setMap(null); 

// show all markers 
layer1.setMap(map); 
+0

非常に興味深いです。.. Googleマップで通り/地形/衛星のオン/オフを切り替える方法はありますか? –

+0

内部のGoogleマップのコードは難読化されています。 –

+0

ありがとうございます。 APIリファレンスの他に 'OverlayView'に関する他のドキュメントはありますか?他の例と何か?私はそれが私が考えていないことを使用することができる他の方法がある場合、私は興味があります。 –

関連する問題