0

我有两个位置。我想用外部图像更改两个位置的标记图标。但在当前代码中,两个地方都采用相同的图像。请问有什么帮助吗?

    var markers = [
     ['Sydney', lat,long],
     ['New York', lat,long],


    function initializeMaps() {
    var myOptions = {
    zoom: 3,
    center: new google.maps.LatLng(lat, long),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    mapTypeControl: false
};
var image = 'img/logos.png';
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < markers.length; i++) {  


    marker = new google.maps.Marker({
        position: new google.maps.LatLng(markers[i][1], markers[i][2]),
        map: map,
    icon: image
    });
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            infowindow.setContent(markers[i][0]);
            infowindow.open(map, marker);
        }
    })(marker, i));
}

}

4

1 回答 1

1

您只定义了 1 张图片,

为每个 loc 将图像添加到数组中,然后如果将其放在末尾,则使用 marker[i][3] 访问它。

这应该有效:

var markers = [
     ['Sydney', lat,long, 'url-to-image'],
     ['New York', lat,long, 'url-to-image'],


    function initializeMaps() {
    var myOptions = {
    zoom: 3,
    center: new google.maps.LatLng(lat, long),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    mapTypeControl: false
};
//var image = 'img/logos.png';
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
var infowindow = new google.maps.InfoWindow(), marker, i;
for (i = 0; i < markers.length; i++) {  


    marker = new google.maps.Marker({
        position: new google.maps.LatLng(markers[i][1], markers[i][2]),
        map: map,
    icon: markers[i][3]
    });
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            infowindow.setContent(markers[i][0]);
            infowindow.open(map, marker);
        }
    })(marker, i));
}
}
于 2013-07-17T18:38:22.673 回答