Google地图功能

时间:2016-06-29 19:42:44

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

我将此功能基于Google Maps API教程。

  • 删除标记部分无效。
  • 即使我点击一个标记,infowindow也只会在一个标记上打开 不同的。
  

" gpsarray"包含由逗号分隔的位置信息的数组。

var map;
var markers = [];

function markersAdd(gpsarray){
    // Remove all Google Maps Markers
    for (var i = 0; i < markers.length; i++) {
        markers[i].setMap(map);
    }
    markers = [];

    // Loop the array and add the corresponding markers
    for (var i = 0; i < gpsarray.length; i++) {
        gps = gpsarray[i].split(",");
        latitude = parseFloat(gps[4]);
        longitude = parseFloat(gps[3]);
        var marker = new google.maps.Marker({
            position: {lat: latitude, lng: longitude},
            map: map,
            title: gps[0]
            });
        markers.push(marker);

        // Add a new infowindow
        var infowindow = new google.maps.InfoWindow({
            content: "Datetime: " + gps[1]
        });
        marker.addListener('click', function() {
            infowindow.open(map, marker);
        });
}

1 个答案:

答案 0 :(得分:1)

要从地图中删除标记,请将其地图属性设置为null(不是map)。

此:

 markers[i].setMap(map);

应该是:

markers[i].setMap(null);

关于infoWindows的问题是Google Maps JS API v3 - Simple Multiple Marker Example的重复(当你的循环完成时,你的代码中只有一个标记变量,你可以使用函数闭包将点击监听器与地图上创建的每个单独的标记相关联)。