具有多个图层和不同属性名称的 WFS GetFeature

Posted

技术标签:

【中文标题】具有多个图层和不同属性名称的 WFS GetFeature【英文标题】:WFS GetFeature with multiple layers and different propertyNames 【发布时间】:2012-06-07 12:00:55 【问题描述】:

假设我有一个运行有两个由 WFS 公开的层的 Geoserver(带有属性):

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

我得到一个例外,说 StreetName 和 Lanes 不在 HouseLayer 中,反之亦然。我需要提出多个请求吗?

编辑:

所以我想做的是这样的:

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

【问题讨论】:

【参考方案1】:

差不多了,只是在 propertyName 中多了一个逗号。这个适用于 vanilla 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 ,我会得到一个功能列表,而不参考它们的类型名。在这种情况下,有没有办法为某个功能获取相应的类型名称? 正如我在 GeoServer 用户邮件列表中回答的那样,不,这是 GeoJSON 格式的限制,它没有层的概念。

以上是关于具有多个图层和不同属性名称的 WFS GetFeature的主要内容,如果未能解决你的问题,请参考以下文章

在选择时将wfs属性显示为标签

Arcgis中怎样将一个点图层和一个面图层合并为一个图层且属性都在呢

MapServer Mapfile中具有相同名称但具有多个比例的图层

leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)

leaflet结合geoserver利用WFS服务实现图层删除功能(附源码下载)

arcgis-api-for-js-之创建图层和添加图层(1)