public class GeoJSONReader extends AbstractReader
AbstractReader.CommonReader, AbstractReader.NodeReader, AbstractReader.ParserWorker, AbstractReader.RelationReader, AbstractReader.WayReader
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
COORDINATES |
private static java.lang.String |
CRS |
private static java.lang.String |
FEATURES |
private static java.lang.String |
GEOMETRY |
private static java.lang.String |
LINK |
private static java.lang.String |
NAME |
private javax.json.stream.JsonParser |
parser |
private Projection |
projection |
private static java.lang.String |
PROPERTIES |
private static java.lang.String |
TYPE |
cancel, ds, externalIdMap, relations, uploadChangeset, ways
Constructor and Description |
---|
GeoJSONReader() |
Modifier and Type | Method and Description |
---|---|
private Node |
createNode(LatLon latlon) |
private java.util.Optional<Way> |
createWay(javax.json.JsonArray coordinates,
boolean autoClose) |
protected DataSet |
doParseDataSet(java.io.InputStream source,
ProgressMonitor progressMonitor) |
private static void |
fillTagsFromFeature(javax.json.JsonObject feature,
OsmPrimitive primitive) |
private LatLon |
getLatLon(javax.json.JsonArray coordinates) |
private static java.util.Map<java.lang.String,java.lang.String> |
getTags(javax.json.JsonObject feature) |
private void |
parse() |
private static double |
parseCoordinate(javax.json.JsonValue coordinate) |
private void |
parseCrs(javax.json.JsonObject crs)
Parse CRS as per https://geojson.org/geojson-spec.html#coordinate-reference-system-objects.
|
static DataSet |
parseDataSet(java.io.InputStream source,
ProgressMonitor progressMonitor)
Parse the given input source and return the dataset.
|
private void |
parseFeature(javax.json.JsonObject feature) |
private void |
parseFeatureCollection(javax.json.JsonArray features) |
private void |
parseGeometry(javax.json.JsonObject feature,
javax.json.JsonObject geometry) |
private void |
parseGeometryCollection(javax.json.JsonObject feature,
javax.json.JsonObject geometry) |
private void |
parseLineString(javax.json.JsonObject feature,
javax.json.JsonArray coordinates) |
private void |
parseMultiLineString(javax.json.JsonObject feature,
javax.json.JsonObject geometry) |
private void |
parseMultiPoint(javax.json.JsonObject feature,
javax.json.JsonObject geometry) |
private void |
parseMultiPolygon(javax.json.JsonObject feature,
javax.json.JsonObject geometry) |
private void |
parseNonGeometryFeature(javax.json.JsonObject feature,
javax.json.JsonObject properties) |
private static void |
parseNullGeometry(javax.json.JsonObject feature) |
private void |
parsePoint(javax.json.JsonObject feature,
javax.json.JsonArray coordinates) |
private void |
parsePolygon(javax.json.JsonObject feature,
javax.json.JsonArray coordinates) |
private void |
parseRoot(javax.json.JsonObject object) |
private static void |
parseUnknown(javax.json.JsonObject object) |
private void |
setParser(javax.json.stream.JsonParser parser) |
buildPrimitive, callPostProcessors, deregisterPostprocessor, doParseDataSet, getDataSet, getLong, parseAction, parseBounds, parseChangeset, parseChangeset, parseDownloadPolicy, parseId, parseLocked, parseNode, parseNode, parseRelation, parseRelationMember, parseRelationMember, parseTag, parseTimestamp, parseUploadPolicy, parseUser, parseUser, parseVersion, parseVersion, parseVersion, parseVisible, parseWay, prepareDataSet, processChangesetAfterParsing, processNodesAfterParsing, processRelationsAfterParsing, processWaysAfterParsing, registerPostprocessor
private static final java.lang.String CRS
private static final java.lang.String NAME
private static final java.lang.String LINK
private static final java.lang.String COORDINATES
private static final java.lang.String FEATURES
private static final java.lang.String PROPERTIES
private static final java.lang.String GEOMETRY
private static final java.lang.String TYPE
private javax.json.stream.JsonParser parser
private Projection projection
GeoJSONReader()
private void setParser(javax.json.stream.JsonParser parser)
private void parse() throws IllegalDataException
IllegalDataException
private void parseRoot(javax.json.JsonObject object) throws IllegalDataException
IllegalDataException
private void parseCrs(javax.json.JsonObject crs) throws IllegalDataException
crs
- CRS JSON objectIllegalDataException
- in case of errorprivate void parseFeatureCollection(javax.json.JsonArray features)
private void parseFeature(javax.json.JsonObject feature)
private void parseNonGeometryFeature(javax.json.JsonObject feature, javax.json.JsonObject properties)
private void parseGeometryCollection(javax.json.JsonObject feature, javax.json.JsonObject geometry)
private void parseGeometry(javax.json.JsonObject feature, javax.json.JsonObject geometry)
private static double parseCoordinate(javax.json.JsonValue coordinate)
private void parsePoint(javax.json.JsonObject feature, javax.json.JsonArray coordinates)
private void parseMultiPoint(javax.json.JsonObject feature, javax.json.JsonObject geometry)
private void parseLineString(javax.json.JsonObject feature, javax.json.JsonArray coordinates)
private void parseMultiLineString(javax.json.JsonObject feature, javax.json.JsonObject geometry)
private void parsePolygon(javax.json.JsonObject feature, javax.json.JsonArray coordinates)
private void parseMultiPolygon(javax.json.JsonObject feature, javax.json.JsonObject geometry)
private Node createNode(LatLon latlon)
private java.util.Optional<Way> createWay(javax.json.JsonArray coordinates, boolean autoClose)
private static void fillTagsFromFeature(javax.json.JsonObject feature, OsmPrimitive primitive)
private static void parseUnknown(javax.json.JsonObject object)
private static void parseNullGeometry(javax.json.JsonObject feature)
private static java.util.Map<java.lang.String,java.lang.String> getTags(javax.json.JsonObject feature)
protected DataSet doParseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException
doParseDataSet
in class AbstractReader
IllegalDataException
public static DataSet parseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException
source
- the source input stream. Must not be null.progressMonitor
- the progress monitor. If null, NullProgressMonitor.INSTANCE
is assumedIllegalDataException
- if an error was found while parsing the data from the sourcejava.lang.IllegalArgumentException
- if source is null