javascript - 谷歌地图功能

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

我根据 Google Maps API 教程创建了此函数。

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

"gpsarray" contains arrays with location information separated by commas.

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

最佳答案

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

这个:

 markers[i].setMap(map);

应该是:

markers[i].setMap(null);

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

关于javascript - 谷歌地图功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108729/

相关文章:

javascript - JS : Change Date format returned from DatePicker

javascript - 为什么这两种编写 jQuery 插件的方式是等价的?

c# - 如何从 gps 点创建谷歌地图折线?

android - 如何使用标记在android中显示 map

google-maps - Location.requestForegroundPermissionsAsync 不是函数

javascript - Google Maps API - 按关键字定位/中心(城市名称)

javascript - 为什么 Express 句柄不抛出新错误?

javascript - 无法阻止基于ajax检查的提交

javascript - a 在我的 Google map 中为空

javascript - Google map 高级版 - 为什么 - "The signature parameter is not required for the Google Maps JavaScript API"