0

我正在使用具有超过一百万个对象的 WMS 层。如果我想从这一层获取特征信息,它不起作用,因为 2 分钟后请求被拒绝(超时)。

然后我尝试使用过滤器选项发送请求以获取当前 BBOX 中的对象(现在为 WFS)。结果和以前一样。

我正在使用 Geoserver、数据库 MS SQL 和 OpenLayers webmap JS 库。我认为问题出在 Geoserver 上,因为他无法为包含大量数据的图层提供服务。如果我从对象数量较少的其他图层获取信息,它会起作用。

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

4

1 回答 1

2

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

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

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

对于连接检查: 您是否拥有最新版本的 Geoserver。您使用的 Datastore 插件是最新且完全受支持的还是仍在开发中。您是否将商店设置为公开主键或添加主键元数据表。地理服务器是否因用户层和数据的数量而达到最大连接限制。(请注意,根据您的 Geoserver 和/或插件版本,其中一些选项可能不可用)

对于图层检查: 图层是否在其本机投影中提供。图层边界框设置是否正确。

即使这发生在获取功能信息请求上,我仍然认为问题很可能出在数据库设置中。

我希望这会有所帮助。

于 2013-09-04T01:34:51.813 回答