Google マップには約 100 個のマーカーがあり、さらに表示する必要がある特別なマーカーが 1 つあります。現在、マップを縮小すると、周囲のマーカーによって完全にまたは部分的に非表示になります。そのマーカーを完全に表示する必要があり、他のすべてのマーカーの上に置いておくとうまくいくと思います。しかし、スタック順序 (z-index) を変更する方法が見つかりません。
3 に答える
これは Google Maps API 2 用です。
Google Maps API 3 では、マーカーの setZIndex(zIndex:number) を使用します。
参照: http://code.google.com/apis/maps/documentation/javascript/reference.html#Marker
jhanifen の答えに加えて、1 つの特別なマーカーを残りすべての上に置きたい場合は、zIndex を google.maps.Marker.MAX_ZINDEX + 1 に設定します。これにより、任意のマーカーの上にあることが確認されます。地図上の。
上に配置するマーカーを作成するときは、GMarkerOptions のzIndexProcessオプションを使用します。例えば:
var pt = new GLatLng(42.2659, -83.74861);
var marker = new GMarker(pt, {zIndexProcess: function() { return 9999; }});
map.addOverlay(marker);
デフォルトでは、マーカーのポイントの緯度である z-index を使用することになっていると思います。したがって、これは、単一のマーカーを前面に移動する際にかなり安全であるはずです。さらに、これは単純な例にすぎません。単純または複雑な方法で、すべてのマーカーの z-index を設定できます。もう 1 つの例は、2 つの関数を使用することです。1 つは特別なマーカー用で、もう 1 つは残り用です。
var pt1 = new GLatLng(42.2659, -83.74861);
var pt2 = new GLatLng(42.3000, -83.74000);
var marker1 = new GMarker(pt1, {zIndexProcess: specialMarker});
var marker2 = new GMarker(pt2, {zIndexProcess: normalMarker});
map.addOverlay(marker1);
map.addOverlay(marker2);
function specialMarker() {
return 9999;
}
function normalMarker() {
return Math.floor(Math.random()*1000);
}