使用WFS GetFeature获取多个图层和不同属性名称的数据

7
假设我有一个Geoserver正在运行,通过WFS公开了两个图层(具有属性):
StreetLayer (geom, StreetName, Lanes, Length)
HouseLayer (geom, Address)

现在,如果我想查询StreetLayer中的所有街道,但只获取StreetName和Lanes属性,我会向以下地址发送GET请求:
http://geoserver/wfs?REQUEST=GetFeature&VERSION=1.1.0&typename=StreetLayer&propertyname=StreetName,Lanes

但是如果我现在想查询HouseLayer和StreetLayer怎么办?这样做是不行的:

http://geoserver/wfs?REQUEST=GetFeature&VERSION=1.1.0&typename=StreetLayer,HouseLayer&propertyname=StreetName,Lanes,Address

我收到一个异常提示,说街道名称和车道不在房屋图层中,反之亦然。我需要进行多个请求吗?

编辑:

那么我想做的是这样的:

http://geoserver/wfs?REQUEST=GetFeature&VERSION=1.1.0&typename=StreetLayer,HouseLayer&propertyname=(StreetName,Lanes),(Address)
1个回答

12

差不多了,你只是在属性名(propertyName)中多加了一个逗号。下面这个可以用于原始的GeoServer安装:

http://localhost:8087/gswps/topp/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_cities,topp:tasmania_roads&propertyName=(ADMIN_NAME,CITY_NAME)(TYPE)
差异:)和(之间没有逗号。

如果我添加outputFormat=json,我会得到一个功能列表,而不提及它们的类型名称。在这种情况下,有没有一种方法可以获取相应的feature类型名称? - Alex Djioev
1
正如我在GeoServer用户邮件列表上回答的那样,不,这是GeoJSON格式的限制,它没有图层的概念。 - Andrea Aime

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接