我有一个像这样的GeoJSON字符串
{
"type": "Polygon",
"coordinates": [
[
[
121.4,
33.99831528411953
],
[
120.32770211588034,
33.09540949748297
],
[
121.4,
32.20168471588049
],
[
122.47229788411967,
33.09540949748297
],
[
121.4,
33.99831528411953
]
]
]
}
我想把它转化为Elasticsearch几何体或ShapeBuilder。
但是我没有找到一个方便的方法。
有人遇到过类似的问题吗?
或者有什么工具类可以做到这一点。
非常感谢您
我发现一个解决方案,如
String valueAsString = mapper.writeValueAsString(value);
GeometryParser parser = new GeometryParser(true, true, true);
XContentParser contentParser = JsonXContent.jsonXContent.createParser(NamedXContentRegistry.EMPTY, DeprecationHandler.THROW_UNSUPPORTED_OPERATION, valueAsString);
contentParser.nextToken();
Geometry geometry = parser.parse(contentParser);
但我不知道这样做对不对。
下面是你如何做到这一点。
// read your GeoJSON string from a file
String geojson = ...;
// parse the GeoJSON
JsonXContent geoJsonParser = JsonXContent.jsonXContent.createParser(NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, geojson);
// create a shape builder (of type PolygonBuilder since the GeoJSON represents a polygon)
PolygonBuilder shapeBuilder = (PolygonBuilder) ShapeBuilder.parse(geoJsonParser);