【问题标题】:OpenLayers getFeatureInfo WMS with huge amount of data具有大量数据的 OpenLayers getFeatureInfo WMS
【发布时间】:2013-08-08 13:56:10
【问题描述】:
我正在使用具有超过一百万个对象的 WMS 层。如果我想从该层获取功能信息,它不起作用,因为 2 分钟后请求被拒绝(超时)。
然后我尝试使用过滤器选项发送请求以获取当前 BBOX 中的对象(现在为 WFS)。结果和以前一样。
我正在使用 Geoserver、数据库 MS SQL 和 OpenLayers webmap JS 库。我认为问题出在 Geoserver 上,因为他无法为包含大量数据的图层提供服务。如果我从对象数量较少的其他图层获取信息,它会起作用。
还有其他获取数据的选项吗?
【问题讨论】:
标签:
sql-server
openlayers
geoserver
wms
getfeatureinfo
【解决方案1】:
可能有许多问题导致此问题,而且可能不仅仅是地理服务器。 MS SQL 中的表是否有空间索引。如果您在 MS SQL 中对表进行查询,它仍然很慢。当您从地理服务器请求数据时,它会将该查询传递给数据库。如果数据库需要时间来响应,geoserver 最终会超时。
您可以尝试通过调整表并添加索引和/或查询提示来加快服务器的响应速度。如果不可能,您可以根据位置将数据分解为多个表。如果 MS SQL 的空间组件无法应对挑战,您可以尝试使用 postgis 或 oracle。 (我从未使用 MS SQL 进行空间工作)
所以请查看您的数据库性能,因为它比地理服务器更有可能是问题所在。如果数据库的性能很好,那么您将需要查看geoserver如何连接到数据库以及在geoserver中如何配置图层。
连接检查:
你有最新版本的 Geoserver。
您使用的 Datastore 插件是最新且完全受支持的还是仍在开发中。
您是否将商店设置为公开主键或添加主键元数据表。
地理服务器是否因用户层和数据的数量而达到最大连接限制。
(请注意,取决于您的 Geoserver 和/或插件版本,其中一些选项可能不可用)
图层检查:
图层是否在其本机投影中提供。
图层边界框设置是否正确。
即使在获取功能信息请求时发生这种情况,我仍然认为问题很可能出在数据库设置中。
希望对你有帮助。