11

有人可以帮我把当前位置放在所有其他人的前面吗?我已经阅读了有关 MAX_ZINDEX 和 setZindex() 的信息,但我无法理解。这是我的代码:

var latlng = new google.maps.LatLng(lat,lng);
var image = "";
var currentplace = "Ohla Hotel";
var zInd = "";
if( name == currentplace ) {
    image = "../img/hotel_icon.png";
}
else {
    image = "../img/home_icon.png";
}
//alert();
var maxZindex = google.maps.Marker.MAX_ZINDEX;
if( name == currentplace ) {
    zInd = (maxZindex + 1);
}
var locationDescription = this.locationDescription;
var marker = new google.maps.Marker({
    map: map,
    position: latlng,
    title:'pk:'+name,
    MAX_ZINDEX: zInd,
    icon: image
});
bounds.extend(latlng);
setMarker(map, marker, name, locationDescription);
4

2 回答 2

14

MAX_ZINDEX是一个常数,而不是标记的属性。

相关的 MarkerOption 是zIndex

var marker = new google.maps.Marker({
    map: map,
    position: latlng,
    title:'pk:'+name,
    zIndex: zInd,
    icon: image
});

这会将标记的zIndex属性设置为您计算的值,该值比 API 的最大值大一。

于 2012-06-17T23:20:28.787 回答
3

您的大部分代码都有意义,但您对MarkerOptionsapi-doc对象的定义没有意义。尝试将您的标记创建代码更改为:

var marker = new google.maps.Marker({
    map: map,
    position: latlng,
    title:'pk:'+name,
    zIndex: zInd,
    icon: image
});

由于您已经设置了zInd高于的值google.maps.Marker.MAX_ZINDEX,因此进行此更改应该将标记放在 zIndex 中更高的位置,从而位于地图上其他标记的上方。

于 2012-06-17T23:19:50.427 回答