#java #geojson #geotools
#java #geojson #geotools
Вопрос:
Входной файл:
{
"type": "FeatureCollection",
"name": "smth_name",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:EPSG::4326"
}
},
"features": [
{
"type": "Feature",
"properties": {
"testid": 2,
"other_geom": {
"type": "Point", "coordinates": [44.3, 33.3]
}
},
"geometry":{"type":"MultiPolygon",
"coordinates":[[[[33.5461,33.44],[33.441,33.447],[33.6718,33.448],[33.0188,33.441],[33.5461,33.44]]]]}
}
]
}
В результате я получаю объект с точечной геометрией (44.3, 33.3), а не с полигональной.
Как игнорировать геометрию в свойствах объекта или других сложных полях?
Использовались geotools gt-geojsondatastore версии 19.0.
GeoJSONDataStore geoJSONDataStore = new GeoJSONDataStore(jsonFile.toURI().toURL());
SimpleFeature simpleFeature = geoJSONDataStore.getFeatures()...next();
Point geometry = simpleFeature.getDefaultGeometry()
Ответ №1:
В вашем конструкторе вы установили геометрию по умолчанию, указывающую на other_geom
, ie. типа Point
object. Установите для него тип MultiPolygon
( geometry
).
SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder();
builder.setDefaultGeometry("geometry");
и в вашем извлечении
MultiPolygon geometry = simpleFeature.getDefaultGeometry();
Комментарии:
1. Входной файл генерируется извне, я не могу повлиять на его структуру.