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