我有来自休眠实体的GML字符串,我想将其转换为GML对象。有没有像GML对象这样的东西,就像我们有几何对象一样?我想做的是在浏览器中打印到GML,以便可以扩展其标签,但是现在由于我将GML作为字符串,所以它只是将GML打印为字符串
"gml": [
"<gml:Polygon>\n <gml:outerBoundaryIs>\n <gml:LinearRing>\n <gml:coordinates>\n -83.675395,36.540759 -83.675395,39.466012 -75.16643499999999,39.466012 -75.16643499999999,36.540759 -83.675395,36.540759 \n </gml:coordinates>\n </gml:LinearRing>\n </gml:outerBoundaryIs>\n</gml:Polygon>\n"]
我想打印GML,以便可以扩展标签。
最佳答案
GeoTools可以阅读GML v2或3,并为您提供JTS几何图形,它可以休眠空间用途:
import org.geotools.gml3.GMLConfiguration;
import org.geotools.xml.Parser;
import com.vividsolutions.jts.geom.Geometry;
Reader reader = new StringReader(gmlString);
GMLConfiguration gmlConfiguration = new GMLConfiguration();
Parser gmlParser = new Parser(gmlConfiguration);
Geometry geometry = (Geometry) gmlParser.parse(reader);
这是another example from the GeoTools tests,但它使用功能而不是几何。
然后使用
org.geotools.geojson.feature.FeatureJSON或org.geotools.geojson.geom.GeometryJSON来获取Geometry实例并提供JSON字符串,如下所示:
GeometryJSON geometryJSON = new GeometryJSON();
String json = geometryJSON.toString(geometry)
我希望这足以使某人开始。似乎没有太多的代码示例。