是否可以通过分页发送WFS请求?我试过STARTINDEX
,但它不起作用。我想在一定限度内获取功能
例如:http://example.com/ArcGIS/services/<mapping service name>/MapServer/WFSServer?VERSION=1.1.0&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=<type name>&STARTINDEX=10&MAXFEATURE=10
或者:我如何仅使用WFS请求获取objectid / featureid,以便我可以发送请求过滤器?
答案 0 :(得分:1)
首先回答你的最后一个问题,通过featureID请求对象使用类似的东西:
http://example.com/geoserver/wfs?
service=wfs&
version=2.0.0&
request=GetFeature&
typeName=namespace:featuretype&
featureID=feature
要进行分页,请使用以下内容:
http://example.com/geoserver/wfs?
service=wfs&
version=2.0.0&
request=GetFeature&
typeName=namespace:featuretype&
startindex=0&
maxFeatures=10
然而,有些注意事项。我只针对Geoserver进行了测试,我知道在geoserver的2.1.x版本中,startindex对结果没有影响。我知道它在版本2.3.x中有效。如果您使用的是特定版本的Geoserver,我建议您查阅一下。我不确定服务于wfs的其他应用程序支持什么。您将需要与他们核实,但我上面给出的是符合WFS规范。
最后一件事是你可能想在这样做时添加一些排序。即。
http://example.com/geoserver/wfs?
service=wfs&
version=2.0.0&
request=GetFeature&
typeName=namespace:featuretype&
startindex=0&
maxFeatures=10&
sortBy=namespace:field
这样做的原因是,在没有排序数据更新时,数据可能会在请求之间发生变化,这意味着您可能看不到页面之间的结果。即使进行排序,这仍然是可能的,特别是如果不对ID进行排序或不使用增量样式ID字段。但是,通常在ID字段上排序将确保在分页中保持一致。
当您使用ArcGis时,其中一些可能与您无关。我很确定最新版本的Arc Gis支持startindex字段的WFS规范。