1

我怎么能记得在旧版本的 Gmaps API 中是否有可能制作自定义叠加层以在其上添加标记,而不是从主地图中添加或删除。也可以制作不同的结果组并仅在一个命令中显示/隐藏它。在新参考中我找不到它,他们是否已重命名它?

4

1 回答 1

1

您说的是 GLayer - https://developers.google.com/maps/documentation/javascript/v2/reference#GLayer

事实上,它已从 v3 API 中删除。

在 API v3 中,由开发人员负责跟踪他们的叠加层并根据需要从地图中添加/删除它们。

最好的方法是把你的叠加层保存在一个数组(或一个对象)中并循环遍历它们。

例如,如果您有两组不同的叠加层(infoWindows 和标记),您可以执行以下操作:

var overlays = {
    markers : [],
    infoWindows : []
};

    //create a marker and put it in markers
    var marker = new google.maps.Marker();
    overlays.markers.push(marker);

    //create an infoWindow and put it in infoWindows
    var infoWindow = new google.maps.InfoWindow();
    overlays.infoWindows.push(infoWindow);

    //remove all infoWindows from the map
    for(var i=0;i<overlays.infoWindows.length;i++) {
      overlays.infoWindows[i].setMap(null);
    }

    //remove all markers from the map
    for(var i=0;i<overlays.markers.length;i++) {
      overlays.markers[i].setMap(null);
    }

这是一个简单的示例,但希望您明白:在 v3 中添加、管理和删除叠加层的“组”由开发人员决定。

于 2013-01-21T00:44:26.340 回答