我们正在尝试使用 OpenLayers 和 GeoServer 显示具有大量点(从 1000 到 20000 不等,具体取决于用户标准)的 map 。这些点存储在 PostgreSQL 数据库中。
虽然应用程序显示较低范围似乎没有什么问题,但它的实际限制似乎在 5000 点左右。我们正在应用的 SLD 也很大(按不是特征 ID 的标准单独列出所有点)。数字较高时,不能保证返回图像,请求有时会导致 GeoServer 崩溃,需要重置服务。
有谁知道这样的事情是否可行,如果可行,有什么配置提示吗?
我们在用于过滤的字段上应用了 btree 索引。
最佳答案
您要向 OpenLayers 添加什么类型的图层? 您可以使用 WMS 层而不是将点作为矢量特征:
http://dev.openlayers.org/docs/files/OpenLayers/Layer/WMS-js.html
GeoServer 然后会生成点的图像,并且只需要传递几 kbs 的 PNG 或 JPEG,而不需要传递更大的几何和样式信息。不过,您会失去一些客户端功能(鼠标悬停事件等)
如果您已经这样做了,那么可能会有一个单独的问题。 5000 点应该可以在服务器上处理。
或者,您可能需要重新考虑如何显示这些点。一次 5000 点听起来好像很困惑。也许使用不同大小的圆圈来表示 10、100、500 点等在处理和可视化方面会更容易。
关于postgresql - GeoServer 和 OpenLayers 在显示大量点时有什么限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2108259/