根据您的经验,可以在不易变慢的OpenLayers矢量层(新的OpenLayers.Layer.Vector(“ Point Layer”))上添加多少点要素?

我的用例是显示数据库表中的点。用户可以决定可视化的时间范围。因此,结果可能从极少到十万个点。我想引入一个合理的限制,并警告用户查询是否返回更多功能。

评论

是否使用标准的浏览器?根据使用的浏览器,限制可能会有所不同。

主要是Firefox。它不必在旧的IE中工作。

除了警告用户外,您还可以从请求矢量数据切换为以WMS /图像返回点。

@geographika:通常我会这样做。但是用户也可以决定要连接到哪个数据库。我必须知道所有可能的数据库,并通过WMS获得它们。他们甚至都没有安装PostGIS,我只是获取经/纬度列。

#1 楼

我没有确切的答案,但您整理了一个页面,可以在OL地图上使用不同数量的点进行游戏:http://derekswingley.com/lab/olpts/

评论


德里克(Derek)应该为此获得“出色答案,并附有实例”。很高兴看到速度叠加点的差异。

– Mapperz♦
2011年4月24日4:11在

很有意思!它使我想到了水仙。另外,它也可以用来测试性能:craigmmills.com/geoipsum(我不知道是否有多边形数限制)

–simo
2011-4-26 11:53



@ So4ne表示Google App Engine网站在某个时候死亡,相同的代码(将近5年)位于此处:derekswingley.com/lab/olpts

–德里克·斯温利(Derek Swingley)
16年1月21日在18:53

@nospor后果从切换到https,已更新,站点又回来了。

–德里克·斯温利(Derek Swingley)
16年6月30日在22:44

@DerekSwingley我已根据您的想法使用Leaflet,MapboxGL JS和OpenLayers 4制作了更新的样本。medium.com/@ThomasG77 / ...

– ThomasG77
17-10-27在20:06



#2 楼

如果由于功能编号太高而导致显示变慢,则表示要显示的数据不适合缩放级别。通常,当特征密度过高时,显示将不再可读(请参见本示例)。即使没有处理限制,并且所有显示设备都可以在小屏幕上0.001秒内显示1000000000000个特征,但可视化仍然是不可能的。

Töpfer的基数定律规定应保持特征密度在恒定的阈值下,无论缩放级别如何。解决此问题并使数据适应可视化范围的一种方法是使用像这样的一个或另一个这样的概括操作来对其进行转换。

评论


在同一主题上:gis.stackexchange.com/q/4096/162

–朱利安
11年4月28日在7:52

非常真实对于Openlayers,它使用群集策略来处理。参见示例:openlayers.org/dev/examples/strategy-cluster.html

–simo
11年4月28日在9:02



对于我当前的应用程序,我只是简单地将(GPS)点连接到了线路(轨道)上。这已经大大改善了渲染时间。

– Underdark♦
2011年4月28日在9:10

#3 楼

我认为不可能对这个问题给出可靠的答案。渲染点/多边形完全取决于浏览器和硬件(CPU和内存),而不取决于OpenLayers。我对Lake(多边形)渲染之一的Openlayers和IE6遇到了问题。但是,它可以很好地在Firefox中加载。最好的选择是使用Chrome监视内存和CPU使用率,或者使用某些工具会更好。

#4 楼

在OpenLayers 6中,有一个WebGL点渲染器,该渲染器应允许您使用基于时间的过滤来渲染数十万个要素。您可能想在https://openlayers.org/workshop/en/webgl/上查看官方研讨会的最新版本。

对于OpenLayers 2,我真的不建议使用再者,可接受帧速率的最大值将仅为数百个功能。

#5 楼

与其他人一样,我对此问题没有答案,但是应用BBox策略可以帮助您仅保留所需的数据,因为它仅显示位于给定边界框中的要素。

#6 楼

我偶然发现了一个类似的用例,不确定是否能满足上述需求,但我在OL 5中采用了Clustering

聚类,如单词所示,需要一组要点并将它们合并在一起在单点上您在特定城市有100个点,那么所有点都将显示为4,但如果是单个点,则显示为10,因此,当缩放为4时,您可以加入这些点首先,它可以帮助减少特定区域中要渲染的点的数量。

换句话说,假设您要在地图上渲染10,000个点,并且它们非常接近彼此之间,因此您可以将它们聚类并减少渲染,并且当用户放大时,您会不断破坏聚类。这将确保您减少渲染并获得更好的性能。

表现令人满意。链接到Openlayers上的集群示例

评论


您能否添加链接页面的简短摘要?链接可能会随着时间而中断,从而使您的答案变得毫无用处。

–坎丹
19年4月29日在11:24