Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps api 3 使用2000个标记的Google地图性能_Google Maps Api 3 - Fatal编程技术网

Google maps api 3 使用2000个标记的Google地图性能

Google maps api 3 使用2000个标记的Google地图性能,google-maps-api-3,Google Maps Api 3,我在谷歌地图上显示了2000个标记。我注意到演出有点慢。我不确定的是。。。是不是因为添加到地图或可见性中的标记数太多,所以速度太慢?如何提高性能?我是否可以将它们添加到地图并在边界之外“隐藏”标记?这会有帮助还是没有帮助,因为即使它不可见,它也会被添加到地图上?显示标记的数据位于名为var datapoints=[…]的列表中 我添加标记的代码如下所示: for (i = 0; i < markers.length; i++) { var data = markers[i]

我在谷歌地图上显示了2000个标记。我注意到演出有点慢。我不确定的是。。。是不是因为添加到地图或可见性中的标记数太多,所以速度太慢?如何提高性能?我是否可以将它们添加到地图并在边界之外“隐藏”标记?这会有帮助还是没有帮助,因为即使它不可见,它也会被添加到地图上?显示标记的数据位于名为
var datapoints=[…]
的列表中

我添加标记的代码如下所示:

for (i = 0; i < markers.length; i++) {
    var data = markers[i]
    var myLatlng = new google.maps.LatLng(data.lat, data.lng);
    var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        title: data.title
    });
    (function (marker, data) {
        google.maps.event.addListener(marker, "click", function (e) {
            infoWindow.setContent(data.description);
            infoWindow.open(map, marker);
        });
    })(marker, data);
}
for(i=0;i

任何优化建议,谢谢

这里有几个选项。谷歌建议将可见标记限制在当前视口、集群(基于距离或网格)或融合表中。我已经通过自定义模块实现了GoogleMaps,该模块对于一张地图上的大量标记非常有效。祝你好运

所以你说的标记添加到地图上,但是“setVisible(false)”(没有从地图上删除,只是明显隐藏)将有助于提高性能?我相信是这样的。然而,在我的应用程序中,我保留了一组标记,并使用setMap()方法在视口发生变化时从地图中添加或删除它们。@Chukkang我刚刚使用了
setMap()
,非常成功,谢谢