谷歌地图:根据数组值添加不同的图像标记

时间:2012-12-11 06:08:01

标签: javascript google-maps google-maps-api-3

我正在执行以下操作,以便从数组中向Google地图添加标记。

我的问题是指函数的结束我试图设置marker.icon = imageUnlikely;我试图让标记成为图像而不是标准的Google地图标记,但它不起作用。如果我将icon: imageUnlikely添加到marker对象,则图片会正确显示。

有什么想法吗?

var imageUnlikely = new google.maps.MarkerImage('/BeachApp/maps/Unlikely.PNG', new google.maps.Size(15, 14));

function SetupMarkers(map, locations) {
var shapeNoUpdate = {
coord: [0, 0, 218, 200],
type: 'rect'
};

var shapeWithUpdate = {
coord: [1, 1, 1, 20, 55, 20, 55, 1],
type: 'poly'
};

for (var i = 0; i < locations.length; i++) {

    var beach = locations[i];

    var beachId = beach[7];

    var myLatLng = new google.maps.LatLng(beach[1], beach[2]);

    var marker = new google.maps.Marker({
        position: myLatLng,
        map: map,   
        shape: shapeNoUpdate,
        title: beach[0] + ' - pollution ' + beach[4],
        beachId: beachId,        
        arrayIndex: i

    });

    if (beach[4] == 'Unlikely') {
        marker.icon = imageUnlikely;
    } 

}
}

SetupMarkers(map4, beaches4);

1 个答案:

答案 0 :(得分:1)

不要使用未记录的属性(google.maps.Marker没有任何记录的属性)。使用记录的方法,在本例中为setIcon()。

示例(未测试):

 if (beach[4] == 'Unlikely') {
    marker.setIcon(imageUnlikely);
 }