use of org.neo4j.graphdb.spatial.Point in project neo4j by neo4j.
the class ExecutionResultTest method shouldHandleListsOfPointsAsInput.
@Test
void shouldHandleListsOfPointsAsInput() {
try (Transaction transaction = db.beginTx()) {
// Given
Point point1 = (Point) transaction.execute("RETURN point({latitude: 12.78, longitude: 56.7}) as point").next().get("point");
Point point2 = (Point) transaction.execute("RETURN point({latitude: 12.18, longitude: 56.2}) as point").next().get("point");
// When
double distance = (double) transaction.execute("RETURN distance($points[0], $points[1]) as dist", map("points", asList(point1, point2))).next().get("dist");
// Then
assertThat(Math.round(distance), equalTo(86107L));
transaction.commit();
}
}
use of org.neo4j.graphdb.spatial.Point in project neo4j by neo4j.
the class Neo4jJsonCodecTest method testGeographicPointWriting.
@Test
public void testGeographicPointWriting() throws IOException {
//Given
Point value = new MockPoint(12.3, 45.6, mockWGS84());
//When
jsonCodec.writeValue(jsonGenerator, value);
//Then
verify(jsonGenerator, times(3)).writeEndObject();
}
use of org.neo4j.graphdb.spatial.Point in project neo4j by neo4j.
the class ExecutionResultTest method shouldHandleMapWithPointsAsInput.
@Test
void shouldHandleMapWithPointsAsInput() {
try (Transaction transaction = db.beginTx()) {
// Given
Point point1 = (Point) transaction.execute("RETURN point({latitude: 12.78, longitude: 56.7}) as point").next().get("point");
Point point2 = (Point) transaction.execute("RETURN point({latitude: 12.18, longitude: 56.2}) as point").next().get("point");
// When
double distance = (double) transaction.execute("RETURN distance($points['p1'], $points['p2']) as dist", map("points", map("p1", point1, "p2", point2))).next().get("dist");
// Then
assertThat(Math.round(distance), equalTo(86107L));
transaction.commit();
}
}
use of org.neo4j.graphdb.spatial.Point in project neo4j by neo4j.
the class Neo4jJsonCodec method writeValue.
@Override
public void writeValue(JsonGenerator out, Object value) throws IOException {
if (value instanceof Entity) {
var context = transactionHandle.getContext();
TransactionStateChecker txStateChecker = TransactionStateChecker.create(context);
writeEntity(out, (Entity) value, txStateChecker, context);
} else if (value instanceof Path) {
var context = transactionHandle.getContext();
TransactionStateChecker txStateChecker = TransactionStateChecker.create(context);
writePath(out, ((Path) value).iterator(), txStateChecker, context);
} else if (value instanceof Iterable) {
writeIterator(out, ((Iterable) value).iterator());
} else if (value instanceof byte[]) {
writeByteArray(out, (byte[]) value);
} else if (value instanceof Map) {
writeMap(out, (Map) value);
} else if (value instanceof Geometry) {
Geometry geom = (Geometry) value;
Object coordinates = (geom instanceof Point) ? ((Point) geom).getCoordinate() : geom.getCoordinates();
writeMap(out, genericMap(new LinkedHashMap<>(), "type", geom.getGeometryType(), "coordinates", coordinates, "crs", geom.getCRS()));
} else if (value instanceof Coordinate) {
Coordinate coordinate = (Coordinate) value;
writeIterator(out, coordinate.getCoordinate().iterator());
} else if (value instanceof CRS) {
CRS crs = (CRS) value;
writeMap(out, genericMap(new LinkedHashMap<>(), "srid", crs.getCode(), "name", crs.getType(), "type", "link", "properties", genericMap(new LinkedHashMap<>(), "href", crs.getHref() + "ogcwkt/", "type", "ogcwkt")));
} else if (value instanceof Temporal || value instanceof TemporalAmount) {
super.writeValue(out, value.toString());
} else if (value != null && value.getClass().isArray() && supportedArrayType(value.getClass().getComponentType())) {
writeReflectiveArray(out, value);
} else {
super.writeValue(out, value);
}
}
use of org.neo4j.graphdb.spatial.Point in project neo4j by neo4j.
the class TestPropertyTypes method testPointType.
@Test
void testPointType() {
Point point = Values.pointValue(Cartesian, 1, 1);
String key = "location";
try (Transaction transaction = getGraphDb().beginTx()) {
transaction.getNodeById(node1.getId()).setProperty(key, point);
transaction.commit();
}
try (Transaction transaction = getGraphDb().beginTx()) {
Object property = transaction.getNodeById(node1.getId()).getProperty(key);
assertEquals(point, property);
transaction.commit();
}
}
Aggregations