我在将GeoJSON对象转换为GML几何对象时遇到了以下问题。
首先,在后端请求中检索GeoJSON对象。然后使用jackson库将其转换为java对象。这个java对象是geojson库中的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对象的现有库?
发布于 2016-02-12 18:10:50
不,绝对没有。你得想别的办法才行。
我建议您手动或将其作为文件读取并保存到变量中。
发布于 2016-06-25 00:16:12
Geotools可能可以满足您的需要。我不会发布,因为我没有这样做,但是一个投机的食谱比“绝对没有”要好。
GeoTools可以读取GeoJSON并为您提供JTS几何图形或特性,然后可以使用org.geotools.xml.Encoder。生成GML。
使用org.geotools.geojson.feature.FeatureJSON或org.geotools.geojson.geom.GeometryJSON接受JSON字符串并给出一个几何实例,如下所示:
GeometryJSON gJson = new GeometryJSON();
jtsGeometry = gJson.readGeometryCollection(jsonInputStream)然后配置一个编码器来编写GML。
org.geotools.xml.Encoder encoder = new org.geotools.xml.Encoder(...);
...
encoder.encode(jtsGeometry, qName, outputStream);我希望这足够开始了。也许,如果你让它工作(或发现这是不可能的),回来编辑这篇文章。
发布于 2016-02-12 18:24:49
据我所知,java没有这样的东西。ogr2ogr (命令行实用程序)可以这样做:
在文件格式之间转换简单的功能数据
http://www.gdal.org/ogr2ogr.html
ogr2ogr -f "GML" destination.gml source.geojson您可以从java运行它,请参阅以下问题:如何在Java中运行GDAL (ogr2ogr)将Shapefile转换为GeoJSON
https://stackoverflow.com/questions/35288278
复制相似问题