Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Javascript 仅在需要时向Google地图添加标记_Javascript_Google Maps - Fatal编程技术网

Javascript 仅在需要时向Google地图添加标记

Javascript 仅在需要时向Google地图添加标记,javascript,google-maps,Javascript,Google Maps,我能够在网站上显示谷歌地图,为当前地图区域加载数百个标记并显示它们。问题在于,当地图被放大/缩小或移动时,地图区域会发生变化,如何进行操作 地图的一部分与以前相同,地图上的标记也一样。但地图中有一部分是新的,应该添加新的标记 现在我正在做最简单的解决方案,清除所有标记,检索当前地图区域的标记并添加它们。这会在标记上产生闪烁效果(很明显),因为之后会立即清除并添加 处理这种情况的有效方法是什么 有没有办法检查标记是否已添加到地图中?您可以使用标记群集或群集算法对缩小时靠近的标记进行分组,并在放大时

我能够在网站上显示谷歌地图,为当前地图区域加载数百个标记并显示它们。问题在于,当地图被放大/缩小或移动时,地图区域会发生变化,如何进行操作

地图的一部分与以前相同,地图上的标记也一样。但地图中有一部分是新的,应该添加新的标记

现在我正在做最简单的解决方案,清除所有标记,检索当前地图区域的标记并添加它们。这会在标记上产生闪烁效果(很明显),因为之后会立即清除并添加

处理这种情况的有效方法是什么


有没有办法检查标记是否已添加到地图中?

您可以使用标记群集或群集算法对缩小时靠近的标记进行分组,并在放大时取消分组。它可以显著减少数据库查询时间和地图绘制时间。kd树是一个很好的解决方案。

要检查标记是否已添加到地图,请调用标记的getMap方法,如果它返回一个地图对象,则该标记已被添加

要检查标记是否位于地图的可见区域,可以在地图上调用getBounds方法,该方法返回LatLngBounds。然后调用传递标记坐标的返回LatLngBounds的contains方法

希望这有帮助