jackson - 将 GeoJSON 对象转换为 GML 几何

标签 jackson geojson gml

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

首先,在请求的后端,我检索 GeoJSON 对象。 然后我使用 jackson 库将其转换为 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 对象的现有库?

最佳答案

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);

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

关于jackson - 将 GeoJSON 对象转换为 GML 几何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288278/

相关文章:

javascript - 传单 geojson 搜索和缩放

.net - 使用 GML 命名空间创建 XElement 对象时出现问题

sprite - GML Sprite 方向面临问题?

在 GameMaker 中查看大小 : Studio dependent on first room

java - 如何使用 Spring application.properties 自定义 Jackson ObjectMapper?

java - Apache Camel 和 jackson

java - jackson 解析复杂对象

javascript - turf.js 可以用来查找和修复错误的 geojson 几何图形吗?

elasticsearch - Elasticsearch GeoShape 查询中的 CONTAINS 和 WITHIN 之间有什么区别?

java - 如何在 Java 中创建如下所示的复杂结构的 JsonObject?