18

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

当您在顶部创建所需的标记时,请使用 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。另一个例子是有两个功能:一个用于特殊标记,一个用于其余。

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 回答
5

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

于 2013-10-07T17:55:54.353 回答