【问题标题】:Google Maps features谷歌地图功能
【发布时间】:2016-06-29 19:42:43
【问题描述】:

这个函数是基于 Google Maps API 教程的。

  • 删除标记部分不起作用。
  • 信息窗口仅在一个标记上打开,即使我单击一个 不同的。

“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);
        });
}

【问题讨论】:

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


    【解决方案1】:

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

    这个:

     markers[i].setMap(map);
    

    应该是:

    markers[i].setMap(null);
    

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

    【讨论】:

      猜你喜欢
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 2013-09-22
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      相关资源
      最近更新 更多