谷歌地图:如何更改标记的z-index?

Sal*_*n A 18 google-maps google-maps-api-3 google-maps-markers google-maps-api-2

谷歌地图上有大约100个标记,还有一个需要可见的特殊标记.目前,当地图缩小时,它周围的标记会将其全部或部分隐藏.我需要将该标记完全可见,并且我认为将其保留在所有其他标记之上应该可以解决问题.但我找不到修改其堆叠顺序(z-index)的方法.

jha*_*fen 24

这适用于Google Maps API 2.

对于Google Maps API 3,请使用标记的setZIndex(zIndex:number).

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


Mar*_*ark 5

在顶部创建所需的标记时,请在GMarkerOptions中使用zIndexProcess选项.例如:

var pt = new GLatLng(42.2659, -83.74861);
var marker = new GMarker(pt, {zIndexProcess: function() { return 9999; }});
map.addOverlay(marker);
Run Code Online (Sandbox Code Playgroud)

我相信默认情况下,z-index是标记点的纬度,因此在将单个标记放在前面时应该相当安全.此外,这只是一个简单的例子; 您可以以任何简单或复杂的方式设置所有标记的z-index.另一个例子是有两个功能:一个用于特殊标记,另一个用于其余功能.

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);
}
Run Code Online (Sandbox Code Playgroud)


mat*_*ode 5

添加到jhanifen的答案,如果你想让你的一个特殊标记在所有其他标记之上,将它的zIndex设置为google.maps.Marker.MAX_ZINDEX + 1.这将确保它位于任何标记之上在地图上.