向斯德哥尔摩市GeoServer发起WFS请求转JSON时坐标分辨率降低
解决GeoServer WFS JSON输出坐标精度降低的问题
看起来你遇到了GeoServer WFS服务在JSON输出时自动降低坐标精度的问题——这其实是GeoServer对GeoJSON格式的默认优化行为,目的是减小响应大小,但确实会影响精度需求高的场景。下面是具体的解决方法:
核心原因:GeoServer的GeoJSON输出默认会将坐标小数位数截断到4位,而GML(XML)输出则保留了原始转换后的6位小数精度。
解决方案:添加精度控制参数
在你的WFS请求中加入format_options=decimalPlaces:6参数,强制JSON输出保留6位小数。同时确保&srsName=EPSG:4326参数正确设置,保证坐标转换为WGS84格式。完整的请求示例如下:
http://[斯德哥尔摩GeoServer的实际地址]/geoserver/wfs? service=WFS& version=2.0.0& request=GetFeature& typeName=你的禁停区图层名称& CQL_FILTER=date='你指定的日期'& srsName=EPSG:4326& outputFormat=application/json& format_options=decimalPlaces:6额外验证要点:
- 确认你的GeoServer版本在2.1.x及以上,这个版本之后才支持
decimalPlaces格式选项; - 检查
CQL_FILTER的语法是否正确,确保能准确过滤出你需要的特定日期数据; - 如果使用的是较旧的GeoServer版本,可能需要自定义GeoJSON输出模板,但升级到新版本或者使用上述参数是更简便的方案。
- 确认你的GeoServer版本在2.1.x及以上,这个版本之后才支持
这样调整后,JSON返回的坐标就会和XML输出保持一致的6位小数精度了,比如会返回[[18.019718,59.297013],[18.019697,59.296889],...]这样的格式。
内容的提问来源于stack exchange,提问作者Giovanni Palusa
相关产品推荐
相关产品推荐

