【问题标题】:Convert GeoJSON object to GML geometry将 GeoJSON 对象转换为 GML 几何
【发布时间】:2016-05-19 05:10:26
【问题描述】:

我在将 GeoJSON 对象转换为 GML 几何对象时遇到以下问题。

首先,在请求的后端,我检索 GeoJSON 对象。 然后我使用杰克逊库将其转换为 java 对象。这个 java 对象是来自 geojson-jackson 库的 FeatureCollection。 所以我在后端有一个代表 GeoJSON 的 java 对象,现在我需要将它转换为 GML 对象并从中提取几何图形。

从这里:

{
  "featureCollection : {
    "type": "FeatureCollection",
    "features": [{
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [ [[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]] ]
      },
    }]
  }
}

我需要得到这个:

<gml:Rectangle srsName="urn:x-ogc:def:crs:EPSG:6.6:25833">
  <gml:exterior>
    <gml:LinearRing>
      <gml:coordinates>100.0,0.0 101.0,0.0 101.0,1.0 100.0,1.0 100.0,0.0</gml:coordinates>
    </gml:LinearRing>
  </gml:exterior>
</gml:Rectangle> 

问题是,是否有任何现有的库允许从 GeoJSON 转换为 GML 对象?

【问题讨论】:

    标签: jackson geojson gml


    【解决方案1】:

    Geotools can probably do what you need.我不会发帖,因为我没有这样做,但投机配方总比“绝对不”要好。

    GeoTools 可以读取 GeoJSON 并为您提供 JTS 几何图形或特征,然后可以使用 org.geotools.xml.Encoder. 生成 GML

    使用 org.geotools.geojson.feature.FeatureJSONorg.geotools.geojson.geom.GeometryJSON 获取 JSON 字符串并提供 Geometry 实例,如下所示:

    GeometryJSON gJson = new GeometryJSON();
    jtsGeometry = gJson.readGeometryCollection(jsonInputStream)
    

    然后配置一个encoder来写GML。

    org.geotools.xml.Encoder encoder = new org.geotools.xml.Encoder(...);
    ...
    encoder.encode(jtsGeometry, qName, outputStream);
    

    我希望这足以开始。也许如果你让它工作(或发现它不可能)回来编辑这篇文章。

    【讨论】:

    • 你好。你能举个例子吗?在对 FeatureJSON 获得的特征集合进行编码时,我遇到了前缀问题。谢谢。
    【解决方案2】:

    据我所知,java 没有这样的东西。 ogr2ogr(一个命令行实用程序)可以做到这一点:

    在文件格式之间转换简单的特征数据

    http://www.gdal.org/ogr2ogr.html

    ogr2ogr -f "GML" destination.gml source.geojson
    

    您可以从 java 中运行它,请参阅这个问题:How to run GDAL (ogr2ogr) in Java to convert Shapefiles to GeoJSON

    【讨论】:

      【解决方案3】:

      不,绝对没有。你必须找到另一种方法来做到这一点。

      我建议您手动执行此操作,或者将其作为文件读取并保存到变量中。

      【讨论】:

        猜你喜欢
        • 2017-06-23
        • 2021-10-27
        • 2021-11-11
        • 2014-11-25
        • 2021-10-25
        • 1970-01-01
        • 2015-07-29
        • 2020-05-10
        • 1970-01-01
        相关资源
        最近更新 更多