Hibernate序列化中的字符串到GML对象

时间:2013-01-14 22:54:07

标签: java json jackson gml

我有来自Hibernate实体的GML字符串,我想将其转换为GML Object。有像GML Object这样的东西,比如我们有Geometry Object吗?我想要做的是在浏览器中打印到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,以便可以扩展标签。

1 个答案:

答案 0 :(得分:0)

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)

我希望这足以让某人开始。似乎代码示例不多。