我有一张地图,在某些时候我画了大约14000个标记。如果地图的边界设置为绘制标记的整个区域,则绘制标记需要很长时间(大约8秒)。但是,如果我放大一个区域,绘制很少/没有标记,那么绘制14000个标记的速度非常快,比如2-3秒。
我认为这是因为最耗时的过程是将标记图标实际绘制到图块上,并且由于标记一次添加一个标记,因此地图在很短的时间内呈现了很多次。
因此我想知道在添加图标时是否可以禁用地图更新/渲染,然后在添加所有图标时重新启用它。
欢迎任何具有类似效果的解决方案
答案 0 :(得分:2)
渲染时间会缩短,因为当您放大时,api v3不会添加14 000。它只添加当前边界PLUS标记中的标记,这些标记位于边缘周围的图块层缓冲区中(可能是一个或两个图块)。
我对你的意思感到困惑,但也许你只想在地图加载后添加标记:
google.maps.event.addListenerOnce(map,'tilesloaded',addMarkersFunction);
所有这一切,14 000个标记是很多标记。当你有这么多时,聚类标记甚至不再是我认为可选的。
答案 1 :(得分:1)
是的,你可以创建很多标记,而不是将它们与地图相关联。然后,在每个上面调用setMap()函数。
您也可以只执行当前范围内的操作。
您是否考虑过标记聚类来减少标记的数量?
查看代码会很有用。
答案 2 :(得分:0)
尝试使用MarkerManager中的Google Maps API v3 Utility Library库。它是为这些问题而设计的。虽然文档的方式不多,但源代码中有几个有用的示例和大量注释。