commit | 06813f3ee5fb509a31c6bec02e0b2a7ec604a5d9 | [log] [tgz] |
---|---|---|
author | Trygve Aaberge <trygveaa@gmail.com> | Thu Feb 27 12:22:51 2020 +0100 |
committer | Trygve Aaberge <trygveaa@gmail.com> | Thu Feb 27 12:24:52 2020 +0100 |
tree | f4f97d6c4974f4a3212674b8c10d85b50c06b954 | |
parent | 8066aa12e989065804eb944e398e14acc4adf735 [diff] |
Replace exterior ring in setExteriorRing if it exists If a Polygon already has an exterior ring and setExteriorRing is called, it would previously add the new ring to the start of the coordinates list, so the existing exterior ring becomes an interior ring.
A small package of all GeoJson POJOs (Plain Old Java Objects) for serializing and deserializing of objects via JSON Jackson Parser.
If you know what kind of object you expect from a GeoJson file you can directly read it like this:
FeatureCollection featureCollection = new ObjectMapper().readValue(inputStream, FeatureCollection.class);
If you want to read any GeoJson file read the value as GeoJsonObject and then test for the contents via instanceOf:
GeoJsonObject object = new ObjectMapper().readValue(inputStream, GeoJsonObject.class); if (object instanceof Polygon) { ... } else if (object instanceof Feature) { ... }
and so on.
Or you can use the GeoJsonObjectVisitor to visit the right method:
GeoJsonObject object = new ObjectMapper().readValue(inputStream, GeoJsonObject.class); object.accept(visitor);
Writing Json is even easier. You just have to create the GeoJson objects and pass them to the Jackson ObjectMapper.
FeatureCollection featureCollection = new FeatureCollection(); featureCollection.add(new Feature()); String json= new ObjectMapper().writeValueAsString(featureCollection);
You can find the library in the Maven Central Repository.
<dependency> <groupId>de.grundid.opendatalab</groupId> <artifactId>geojson-jackson</artifactId> <version>1.8.1</version> </dependency>