use of com.mongodb.client.model.geojson.CoordinateReferenceSystem in project mongo-java-driver by mongodb.
the class GeometryDecoderHelper method decodePoint.
private static Point decodePoint(final BsonReader reader) {
String type = null;
Position position = null;
CoordinateReferenceSystem crs = null;
reader.readStartDocument();
while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
String key = reader.readName();
if (key.equals("type")) {
type = reader.readString();
} else if (key.equals("coordinates")) {
position = decodePosition(reader);
} else if (key.equals("crs")) {
crs = decodeCoordinateReferenceSystem(reader);
} else {
throw new CodecConfigurationException(format("Unexpected key '%s' found when decoding a GeoJSON point", key));
}
}
reader.readEndDocument();
if (type == null) {
throw new CodecConfigurationException("Invalid Point, document contained no type information.");
} else if (!type.equals("Point")) {
throw new CodecConfigurationException(format("Invalid Point, found type '%s'.", type));
} else if (position == null) {
throw new CodecConfigurationException("Invalid Point, missing position coordinates.");
}
return crs != null ? new Point(crs, position) : new Point(position);
}
use of com.mongodb.client.model.geojson.CoordinateReferenceSystem in project mongo-java-driver by mongodb.
the class GeometryDecoderHelper method decodeMultiPoint.
private static MultiPoint decodeMultiPoint(final BsonReader reader) {
String type = null;
List<Position> coordinates = null;
CoordinateReferenceSystem crs = null;
reader.readStartDocument();
while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
String key = reader.readName();
if (key.equals("type")) {
type = reader.readString();
} else if (key.equals("coordinates")) {
coordinates = decodeCoordinates(reader);
} else if (key.equals("crs")) {
crs = decodeCoordinateReferenceSystem(reader);
} else {
throw new CodecConfigurationException(format("Unexpected key '%s' found when decoding a GeoJSON point", key));
}
}
reader.readEndDocument();
if (type == null) {
throw new CodecConfigurationException("Invalid MultiPoint, document contained no type information.");
} else if (!type.equals("MultiPoint")) {
throw new CodecConfigurationException(format("Invalid MultiPoint, found type '%s'.", type));
} else if (coordinates == null) {
throw new CodecConfigurationException("Invalid MultiPoint, missing position coordinates.");
}
return crs != null ? new MultiPoint(crs, coordinates) : new MultiPoint(coordinates);
}
use of com.mongodb.client.model.geojson.CoordinateReferenceSystem in project mongo-java-driver by mongodb.
the class GeometryDecoderHelper method decodeMultiPolygon.
private static MultiPolygon decodeMultiPolygon(final BsonReader reader) {
String type = null;
List<PolygonCoordinates> coordinates = null;
CoordinateReferenceSystem crs = null;
reader.readStartDocument();
while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
String key = reader.readName();
if (key.equals("type")) {
type = reader.readString();
} else if (key.equals("coordinates")) {
coordinates = decodeMultiPolygonCoordinates(reader);
} else if (key.equals("crs")) {
crs = decodeCoordinateReferenceSystem(reader);
} else {
throw new CodecConfigurationException(format("Unexpected key '%s' found when decoding a GeoJSON Polygon", key));
}
}
reader.readEndDocument();
if (type == null) {
throw new CodecConfigurationException("Invalid MultiPolygon, document contained no type information.");
} else if (!type.equals("MultiPolygon")) {
throw new CodecConfigurationException(format("Invalid MultiPolygon, found type '%s'.", type));
} else if (coordinates == null) {
throw new CodecConfigurationException("Invalid MultiPolygon, missing coordinates.");
}
return crs != null ? new MultiPolygon(crs, coordinates) : new MultiPolygon(coordinates);
}
use of com.mongodb.client.model.geojson.CoordinateReferenceSystem in project mongo-java-driver by mongodb.
the class GeometryEncoderHelper method encodeCoordinateReferenceSystem.
@SuppressWarnings({ "unchecked", "rawtypes" })
static void encodeCoordinateReferenceSystem(final BsonWriter writer, final Geometry geometry, final EncoderContext encoderContext, final CodecRegistry registry) {
CoordinateReferenceSystem coordinateReferenceSystem = geometry.getCoordinateReferenceSystem();
if (coordinateReferenceSystem != null) {
writer.writeName("crs");
Codec codec = registry.get(coordinateReferenceSystem.getClass());
encoderContext.encodeWithChildContext(codec, writer, coordinateReferenceSystem);
}
}
use of com.mongodb.client.model.geojson.CoordinateReferenceSystem in project mongo-java-driver by mongodb.
the class GeometryDecoderHelper method decodeLineString.
private static LineString decodeLineString(final BsonReader reader) {
String type = null;
List<Position> coordinates = null;
CoordinateReferenceSystem crs = null;
reader.readStartDocument();
while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
String key = reader.readName();
if (key.equals("type")) {
type = reader.readString();
} else if (key.equals("coordinates")) {
coordinates = decodeCoordinates(reader);
} else if (key.equals("crs")) {
crs = decodeCoordinateReferenceSystem(reader);
} else {
throw new CodecConfigurationException(format("Unexpected key '%s' found when decoding a GeoJSON Polygon", key));
}
}
reader.readEndDocument();
if (type == null) {
throw new CodecConfigurationException("Invalid LineString, document contained no type information.");
} else if (!type.equals("LineString")) {
throw new CodecConfigurationException(format("Invalid LineString, found type '%s'.", type));
} else if (coordinates == null) {
throw new CodecConfigurationException("Invalid LineString, missing coordinates.");
}
return crs != null ? new LineString(crs, coordinates) : new LineString(coordinates);
}
Aggregations