python - 叶/传单地图中的 600 万个标记
问题描述
使用 MarkerCluster 算法,可以将附近的标记聚集在一起,因此地图在视觉上非常容易接受。
但是,我发现传单地图的性能和响应随着其中标记的数量而降低。
我仍然不明白,但我发现人们谈论的是服务器端集群解决方案而不是客户端集群。
这个持久的模块项目是在传单地图中使用此概念(服务器端聚类)的大量标记的解决方案。
我的问题是:
它是如何在传单地图中完成的?
如何在 folium maps 的 python 中制作这个解决方案?
解决方案
服务器端集群可以通过 XHR 请求来完成。
最简单的方法是将您的地图划分为正方形,并让它在单个要素图层之间切换,并使用MAP.on('zoomend', function(e){});
事件替换 geoJSON/JSON 图层。
举个例子,如果 jQuery 可用,你可以$.getJSON(SERVER_SIDE_URL, {VARIABLE: 'VALUE'}, function(data){});
在 zoomend 上做。这里匿名函数将携带响应数据。您可以使用此数据创建替代 LayerGroup 或单个 Layer,同时跟踪和销毁其谓词。
服务器端将需要访问完整的数据集,并且能够为抽象附近的单个特征或占位符的半径/正方形半径内的一组特征提供 JSON。
这是一个选项的摘要。或者,可能有市场就绪的解决方案。但是自己编写应该为这样一个简单的任务提供更有效的解决方案。
推荐阅读
- spring-boot - 酒店搜索系统
- python - 从字典中删除重复项
- python - 我有很多 netcdf 文件,如何使用 xarray 将所有文件上传到一个 python 笔记本中?
- clojure - 根据这些值的向量,按地图中的值对地图向量进行排序 - Clojure
- javascript - document.title 元素在刷新时消失
- spring - 如何在 Angular 8 中调用 Rest API Post 方法。出现 CORS 错误
- javascript - 如何解决 CSS 没有反映在 Air-Table 的 iframe 上的问题?
- amazon-web-services - 使用 AWS Amplify 将 React Native 应用程序发布到云
- curl - 使用 curl 将 post 请求发送到 mlflow api 到多条记录
- nuxt.js - Nuxt.Js 在 Azure 上部署没有 node_modules 文件夹