请教各位用Openlayers+geoserver怎么实现这种效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教各位用Openlayers+geoserver怎么实现这种效果相关的知识,希望对你有一定的参考价值。

参考技术A 这个高亮 以前我做过的一个项目 实现方法是通过鼠标事件触发查询 然后将后台返回的多边形绘制到地图上,通过透明度和边框实现这个效果。

GeoServer 和 OpenLayers 在显示大量点时有啥限制?

【中文标题】GeoServer 和 OpenLayers 在显示大量点时有啥限制?【英文标题】:What are the limitations of GeoServer and OpenLayers when showing a large number of points?GeoServer 和 OpenLayers 在显示大量点时有什么限制? 【发布时间】:2010-01-21 10:00:42 【问题描述】:

我们正在尝试使用 OpenLayers 和 GeoServer 显示具有大量点的地图(范围从 1000 到 20000,具体取决于用户标准)。这些点存储在 PostgreSQL 数据库中。

虽然应用程序显示下限似乎没有什么问题,但它的实际限制似乎在 5000 点左右。我们应用的 SLD 也很大(按不是特征 ID 的标准单独列出所有点)。数字越大,图像不能保证返回,并且请求有时会导致 GeoServer 崩溃,需要重置服务。

有谁知道这样的事情是否可行,如果可行,有什么配置技巧吗?

我们在用于过滤的字段上应用了 btree 索引。

【问题讨论】:

【参考方案1】:

您要向 OpenLayers 添加什么类型的图层? 您可以使用 WMS 图层而不是将点作为矢量特征:

http://dev.openlayers.org/docs/files/OpenLayers/Layer/WMS-js.html

然后,GeoServer 将生成点的图像,并且只需要传递几 kbs 的 JPEG 的 PNG,而不是会大得多的几何和样式信息。不过,您会失去一些客户端功能(鼠标悬停事件等)

如果您已经这样做了,那么可能会有一个单独的问题。 5000点应该可以在服务器上处理。

或者,您可能需要重新考虑如何显示积分。一次 5000 点听起来好像很混乱。也许使用不同大小的圆圈来表示 10、100、500 点等在处理和可视化方面会更容易。

【讨论】:

非常感谢您的回复。我们使用的是 WMS 层(我应该说)。我同意显示的点数令人困惑,因此我们以不同的方式显示数据(使用政治边界)。点等级现在仅在放大到它们变得更有用的等级后才会出现。

以上是关于请教各位用Openlayers+geoserver怎么实现这种效果的主要内容,如果未能解决你的问题,请参考以下文章

openlayers 3加载GeoServer发布的wfs类型服务

GeoServer中配置的图层使用OpenLayers为啥读不出来

使用 Openlayers 和 GEOServer 显示特征名称

GeoServer 和 OpenLayers 在显示大量点时有啥限制?

Geoserver 2.10 Openlayers 3 TextSymbolizer 标签未显示

Openlayers 和 geoserver - 没有这样的属性:bbox