2013-08-07 139 views
0

我正在使用WMS图层,该图层拥有超过一百万个对象。如果我想从此图层获取功能信息,它不起作用,因为在2分钟后请求被拒绝(超时)。OpenLayers getFeatureInfo具有大量数据的WMS

然后我试图发送带有过滤选项的请求来获取当前BBOX中的对象(WFS now)。结果与之前一样。

我正在使用Geoserver,数据库MS SQL和OpenLayers webmap JS库。我认为问题出在Geoserver上,因为他有大量数据服务层的问题。如果我从其他层数较少的对象获取信息,它就可以工作。

是否有其他选择获取数据?

回答

2

可能存在一些导致此问题的问题,它可能不仅仅是geoserver。 MS SQL中的表是否有空间索引。它在MS SQL中对表进行查询的速度仍然很慢。当您从geoserver请求数据时,它会将该查询传递给数据库。如果数据库正在花时间响应地理服务器,则最终会超时。

您可以尝试通过tweeking您的表并添加索引和/或查询提示来加速来自服务器的响应。如果不可能,您可以根据位置将数据拆分为多个表格。如果MS SQL的空间组件无法应对挑战,那么可以尝试使用postgis或oracle。 (我从来没有使用MS SQL进行空间工作)

所以请看看你的数据库性能,因为它比地理服务器更可能成为问题。如果数据库的性能很好,那么您需要了解geoserver如何连接到数据库,以及如何在geoserver中配置图层。

对于连接检查: 你有最新版本的Geoserver。 Datastore插件是否使用最新且完全支持或尚未开发的插件。 您是否已将商店设置为公开主键或添加了主键元数据表。 geoserver是否与用户图层和数据量达到了最大连接限制。 (注意根据您的利用Geoserver版本和/或插件其中一些选项可能不可用)

对于层检查: 在其本土投影被服务了层。 图层边界框设置是否正确。

Geven,这是发生在获取功能信息请求我仍然认为这个问题很可能在数据库设置。

我希望有帮助。