谷歌地图上大约有100个标记,还有一个特殊的标记需要被显示。目前,当缩小地图时,周围的标记会完全或部分隐藏该标记。我需要让该标记完全可见,并且我认为将其放在所有其他标记的顶部应该可以解决问题。但是我找不到修改它的堆叠顺序(z-index)的方法。
谷歌地图上大约有100个标记,还有一个特殊的标记需要被显示。目前,当缩小地图时,周围的标记会完全或部分隐藏该标记。我需要让该标记完全可见,并且我认为将其放在所有其他标记的顶部应该可以解决问题。但是我找不到修改它的堆叠顺序(z-index)的方法。
这是针对谷歌地图API 2的。
对于谷歌地图API 3,请使用标记的setZIndex(zIndex:number)方法。
参见:http://code.google.com/apis/maps/documentation/javascript/reference.html#Marker
在创建所需置顶的标记时,使用 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);
}
补充jhanifen的答案,如果您想让一个特殊标记置于所有其他标记之上,请将其zIndex设置为 google.maps.Marker.MAX_ZINDEX + 1。这将确保它在地图上处于所有标记之上。