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