使用Mapbox在地图上显示数百万个点

使用Mapbox在地图上显示数百万个点,mapbox,Mapbox,你知道我如何使用Mapbox实现这种效果吗 我需要在美国地图上显示140万个点。集群对于我们来说是一个很好的选择,我尝试了Mapbox的集群示例 但是当超过200000个lat/lng对被传入时,浏览器的加载速度非常慢。显然,你不能真正显示“140万点”。这对计算机来说是非常沉重的负担,对用户来说也是不可能的 看着这个显示,我猜他们可能将属性(在SQL数据库中)分组到“社区”中,为每个“社区”建立一个(lat、lng),并在该点定义(也在SQL数据库中)一个循环标记。毫无疑问,他们还预先计算了

你知道我如何使用Mapbox实现这种效果吗

我需要在美国地图上显示140万个点。集群对于我们来说是一个很好的选择,我尝试了Mapbox的集群示例 但是当超过200000个lat/lng对被传入时,浏览器的加载速度非常慢。

显然,你不能真正显示“140万点”。这对计算机来说是非常沉重的负担,对用户来说也是不可能的

看着这个显示,我猜他们可能将属性(在SQL数据库中)分组到“社区”中,为每个“社区”建立一个(lat、lng),并在该点定义(也在SQL数据库中)一个循环标记。毫无疑问,他们还预先计算了在该标记下计算的房地产数量

他们接下来要做的就是在这些圆形标记之间建立一个层次结构。在较低(较远)的缩放级别,一些标记将不再显示,并且它们将显示不同的(较大的…)计数,这些计数可能只是从(现在,不再显示…)标记“正下方”的位置“冒泡”而来

换句话说:每个传单缩放级别都有自己独特的标记集,所有标记都是由宿主预先计算的。随着[传单…]地图的放大或缩小,标记层的内容将替换为适合该放大级别的一组新标记

计算所有这些数据并将其存储在适当的SQL数据库结构中,这将是一个适度的脚本或存储过程的工作,该脚本或存储过程将定期在主机上运行

在最高(最接近的…)放大倍数下,客户机可能会要求主机提供在用户显示器上实际可见的(纬度、液化天然气)范围内的单个属性列表。。。再加上一些保证金。如果用户将地图滚动到其他地方,则(在短暂暂停以确保地图不再移动后…)将要求主机发送另一组属性点


但一个关键点是,“要求[传单]显示的总点数从来都不是“无法管理的”。实际上可以看到的是一组圆圈,加上一些边距,每个圆圈代表多达1000个属性。当显示最终转到“单个属性”时,“点列表中只有那些“附近,加上一些边距”的点。

非常好的解释,谢谢!这个答案应该被接受。计算机不能轻易地绘制140万个点的建议让我想到了视频游戏每帧能做多少工作,这是一个多么奇迹啊。“理论上,现代GPU每秒可以处理数十亿个三角形。实际上,在正常情况下,每秒几亿个三角形不应该是问题。”