分享

GIS 如何使geoserver为WMS GetFeatureInfo返回JSON?

 primivite_ 2017-09-11

问题描述

我希望将WMS GetFeatureInfo请求的结果作为JSON而不是默认出现的表。开箱即用,来自WMS GetFeatureInfo的响应的唯一选项是表,XML和文本。

最佳解决方案

更新以下给出的’hack’仅适用于Geoserver 2.2.x及更低版本。使用版本2.3.0及更高版本,Geoserver可以本地返回WMS GetFeatureInfo请求的JSON。

更新结束


geoserver’s bug tracker上有一个开放的功能请求。

使用自定义GetFeatureInfo Templates,可以从Geoserver生成Json响应。

您可以按照下列步骤操作:

1]转到以下文件夹

GEOSERVER_DATA_DIR/workspaces/{workspace}/{datastore}/{featuretype}/

2]创建3个空的文本文件,名称如下:header.ftl,content.ftl& footer.ftl

3]打开content.ftl文件,并复制以下free-marker代码:

[
<#list features as feature>
{ "Type": "${type.name}"
<#list feature.attributes as attribute>
    <#if !attribute.isGeometry>
    , "${attribute.name}": "${attribute.value}"
    </#if>
</#list>
}
</#list> ,{}
]

4]保存文件,现在使WMS getFeatureInfo请求。你会看到响应是JSON。

注意:您需要记住,这将使用反转的逗号将数值包装为字符串。因此,您可能需要在客户端代码中进行处理。

次佳解决方案

此功能现在存在于GeoServer 2.2.4中。

以下是请求JSON输出的方法:

http://docs./stable/en/user/services/wms/reference.html#getfeatureinfo

参考文献

注:本文内容整合自google/baidu/bing辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:gxnotes#qq.com(#替换为@)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多