使用Leaflet可视化大型数据集(具有10,000个点特征的GeoJSON)时,浏览器崩溃或挂起就不足为奇了。来自同一数据集的1000个要素的子样本可以完美地工作。不幸的是,我无法共享该数据集供其他人试用。 (最终目的是将其扩展到200万个功能)我什至愿意考虑使用离线可视化框架,以防基于浏览器的替代品(如Polymaps或d3.js等)被认为无法使用。忘记了,用户需要能够按属性过滤数据集。因此,在N个要素中,可能只需要动态渲染匹配的n <= N个要素。

评论

类似的讨论:gis.stackexchange.com/questions/4096/ gis.stackexchange.com/questions/14882 gis.stackexchange.com/questions/6954

重新发布链接,使其可以正常工作gis.stackexchange.com/questions/4096/…gis.stackexchange.com/questions/14882/…gis.stackexchange.com/questions/6954/…

#1 楼

我是传单的作者。有一个很棒的集群插件,Leaflet.markercluster。它非常快速高效(请看一下50k标记示例),可以很好地使用动画效果,并且看起来非常流畅,并且有很多选项可以满足您的需求。

评论


PruneCluster看起来也很有前途。

–TLama
15年1月19日在8:53

我想扩大最初的问题。我需要执行以下操作:matall.in/posts/deep-insights-visualizing-1m-flight-routes如何将标记中间的路径聚类?

– Guilhermecgs
17年1月6日在15:34

#2 楼

您可以使用TileMill并将点渲染为栅格图像,并与UTFGrid快速交互。像这张人口普查图一样,它可以缩放到数百万个点和多边形,因为它可以智能地仅在需要时才发送特定区域所需的数据。除了拥有非常快速的WFS服务器(很难维护/缩放给许多查看者)以外,其他方法还可以执行此操作。但是TileMill是免费/开源等。

评论


我忘了提到用户应该能够按属性过滤数据集并仅显示匹配的记录。因此,假设在10,000条记录中,对于给定的案例,实际上可能只需要呈现500条记录。我可以(或如何)用TileMill做到这一点?

– Imad
2012年10月1日9:16



不。您可能想尝试CartoDB,但您应该知道使事物动态化和使事物性能高是相反的目标。

– tmcw
2012年10月1日14:31

人口普查地图链接已消失!

– drho
18年11月22日在15:20

所有链接都是父亲。

–LeeGee
19年1月25日,下午3:41

#3 楼

您看过传单集群器了吗?作者的博客文章对此进行了描述
这里

另一个值得一看的选择是将传单与GIS Cloud结合使用。看一下这个演示,看看它能非常快速地处理很多几何。非常令人印象深刻。我绝不隶属于GISCloud。

#4 楼

您绝对不应在地图上显示数百万个点。不仅由于主要的性能问题,而且从用户的角度出发,因为对于他们来说,无疑将很难解释该数据。使用一些聚合数据的方法(聚类,聚合到多边形区域等),并在不同的缩放级别上结合不同的显示类型(例如,仅在非常高的缩放级别上显示“原始”点数据,并在其他任何地方使用聚合的数据)。例如房地产网站,例如zillow.com。

评论


你永远都不要说“你永远不要”。当地人和游客就是一个很好的例子,可以直观地显示数百万(在这种情况下为数十亿)点。

–约瑟夫·希迪
15年3月13日在18:30

同意w / @ velotron,例如精美且快速地渲染六百万个点:mapbox.com/blog/supercluster

–马克斯·冯·希佩尔
16-10-28在4:07



是的,但是在这种情况下,这些点也被聚类(取决于缩放级别),这使得解释和理解数据非常容易。

–chriserik
16-10-30在10:22

@chriserik是正确的,因此正确的答案是“如果有很多点,则应使用聚类或热图,这是如何做到的……”

–马克斯·冯·希佩尔
16年2月2日在8:35

我的观点是,数百万个点的非聚集图可以提供洞察力。

–约瑟夫·希迪
16年11月15日,0:45

#5 楼

我建议您减少点特征的渲染量:人眼将看不到10,000点,更不用说2,000,000点了。服务器(您必须设置的服务器),例如。根据缩放系数和裁剪,您只需要返回很小比例的点,而不会恶化用户体验。

缺点:设置服务器(您应该找到用于过滤地理位置的库)渲染速度较慢(每次缩放或拖动之后,都需要发出服务器请求)

#6 楼

我有解决方案可以映射50到1亿条记录,您需要使用服务器端解决方案来进行基于网格和动态的处理。您无法通过网络地图API(Google或其他)进行回复来进行客户端呈现...。

[http://96.231.36.9:8080/rbgis/google_map.html] [ 1]
尝试以上链接,看看如何

评论


请扩大您的答案,这样即使您的服务器无法访问也将有所帮助。

–lynxlynxlynx
13年4月4日在15:28

是的,具有讽刺意味。由于您的服务器端链接不起作用。

–马克斯·冯·希佩尔
16-10-25在6:04