我想要实现包含大量数据的地图,例如 https://openlayers.org/en/latest/examples/geojson.html 要么 http://leafletjs.com/examples/quick-start/
在缩小100%时,地图需要显示大约50000个标记或圆圈,这些标记或圆圈将动态更新(每1-5分钟一次)。根据用户设置,圆圈/标记可能有不同的颜色等。
在放大时,要求显示大约1000张小图像(在圆圈/标记的位置)。
如何在地图中处理如此大量的动态数据?例如,如果我在Leaflet中使用小圆圈,我可以看到它在放大和缩小时处理超过1000个没有更大问题,但浏览器开始挣扎超过〜5000,这可能是因为浏览器需要处理批次数据点。我希望OpenLayers也有同样的问题。
有什么想法?
答案 0 :(得分:1)
您需要使用画布渲染器宽度L.canvas
。您可以将地图选项preferCanvas
设置为true,也可以创建渲染器宽度L.canvas
并将其绑定到要素图层宽度renderer
选项。所以它会是这样的:
L.geoJson(null,{renderer:L.canvas()});
另外我建议你在部分中添加功能,即使渲染器可以处理这么多数据,它仍然是长时间操作来渲染它。您可以拆分数据并改为使用timeout
。
如果您需要一些自定义设计点,您还可以扩展此类,宽度新功能类型。
宽度这项技术我能够渲染超过60000个标记宽度没有滞后。