18

Google マップには約 100 個のマーカーがあり、さらに表示する必要がある特別なマーカーが 1 つあります。現在、マップを縮小すると、周囲のマーカーによって完全にまたは部分的に非表示になります。そのマーカーを完全に表示する必要があり、他のすべてのマーカーの上に置いておくとうまくいくと思います。しかし、スタック順序 (z-index) を変更する方法が見つかりません。

4

3 に答える 3

24

これは Google Maps API 2 用です。

Google Maps API 3 では、マーカーの setZIndex(zIndex:number) を使用します。

参照: http://code.google.com/apis/maps/documentation/javascript/reference.html#Marker

于 2011-08-31T03:03:58.120 に答える
5

jhanifen の答えに加えて、1 つの特別なマーカーを残りすべての上に置きたい場合は、zIndex を google.maps.Marker.MAX_ZINDEX + 1 に設定します。これにより、任意のマーカーの上にあることが確認されます。地図上の。

于 2013-10-07T17:55:54.353 に答える
5

上に配置するマーカーを作成するときは、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);
}
于 2010-03-06T22:17:45.263 に答える