Geoserver:WFS不返回具有空值的列的节点

时间:2014-03-04 18:37:51

标签: geoserver ogc web-feature-service

GeoServer 2.3不会为具有空值的列返回空XML节点。例如,这是从WFS对CQL查询的响应中获取的片段:

<gml:featureMember>
<ems:airports fid="airports.3822">
<ems:IKO>KINL</ems:IKO>
<ems:na3>US24271</ems:na3>
<ems:Name>FALLS INTL</ems:Name>
<ems:Type>Civilian/Public</ems:Type>
<ems:the_geom>...</ems:the_geom>
<ems:Mod_time>2011-09-02T20:17:30.831</ems:Mod_time>
</ems:airports>
</gml:featureMember>
<gml:featureMember>
<ems:airports fid="airports.10117">
<ems:IKO>CKV3</ems:IKO>
<ems:Name>DRYDEN BEST WESTERN (Heli)</ems:Name>
<ems:the_geom>
<gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">-92.833333,49.783333</gml:coordinates>
</gml:Point>
</ems:the_geom>
<ems:Mod_time>2011-09-08T16:56:07.334</ems:Mod_time>
<ems:Country>Canada</ems:Country>
<ems:Operator>Best Western Motor Inn</ems:Operator>
<ems:Contact>807-223-3201</ems:Contact>
</ems:airports>
</gml:featureMember>

第二个featureMember元素缺少na3和Type节点,因为它们在数据库中为空。

有没有办法配置GeoServer在遇到空值的列时返回空节点?

2 个答案:

答案 0 :(得分:1)

显然这是设计,因为它是WFS规范。参见相关讨论:

http://osgeo-org.1560.x6.nabble.com/Why-the-WFS-does-not-return-the-NULL-value-field-td3802398.html

建议在该线程中解析&#34; DescribeFeatureType&#34;响应,包含所有字段。

现在,如果只有一个OpenLayers控件/插件结合了这种行为,我会很高兴,但我想我会被迫从头开发它。

答案 1 :(得分:0)

describefeaturetype仅返回列名称。但是,如果一列包含null,它不会出现在响应中,即使某些行确实有值。