具有多个图层和不同属性名称的 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的主要内容,如果未能解决你的问题,请参考以下文章
Arcgis中怎样将一个点图层和一个面图层合并为一个图层且属性都在呢
MapServer Mapfile中具有相同名称但具有多个比例的图层
leaflet结合geoserver利用WFS服务实现图层新增功能(附源码下载)