Search in sources :

Example 11 with Point

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();
    }
}
Also used : Transaction(org.neo4j.graphdb.Transaction) Point(org.neo4j.graphdb.spatial.Point) Test(org.junit.jupiter.api.Test)

Example 12 with Point

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();
}
Also used : Point(org.neo4j.graphdb.spatial.Point) Test(org.junit.Test)

Example 13 with Point

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();
    }
}
Also used : Transaction(org.neo4j.graphdb.Transaction) Point(org.neo4j.graphdb.spatial.Point) Test(org.junit.jupiter.api.Test)

Example 14 with Point

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);
    }
}
Also used : Path(org.neo4j.graphdb.Path) Entity(org.neo4j.graphdb.Entity) TransactionStateChecker(org.neo4j.server.http.cypher.TransactionStateChecker) CRS(org.neo4j.graphdb.spatial.CRS) Point(org.neo4j.graphdb.spatial.Point) LinkedHashMap(java.util.LinkedHashMap) Geometry(org.neo4j.graphdb.spatial.Geometry) Temporal(java.time.temporal.Temporal) Coordinate(org.neo4j.graphdb.spatial.Coordinate) TemporalAmount(java.time.temporal.TemporalAmount) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) MapUtil.genericMap(org.neo4j.internal.helpers.collection.MapUtil.genericMap)

Example 15 with Point

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();
    }
}
Also used : Transaction(org.neo4j.graphdb.Transaction) Point(org.neo4j.graphdb.spatial.Point) Test(org.junit.jupiter.api.Test)

Aggregations

Point (org.neo4j.graphdb.spatial.Point)29 Test (org.junit.jupiter.api.Test)20 Transaction (org.neo4j.graphdb.Transaction)15 Result (org.neo4j.graphdb.Result)7 CRS (org.neo4j.graphdb.spatial.CRS)4 Map (java.util.Map)3 TemporalAmount (java.time.temporal.TemporalAmount)2 LinkedHashMap (java.util.LinkedHashMap)2 List (java.util.List)2 Test (org.junit.Test)2 Coordinate (org.neo4j.graphdb.spatial.Coordinate)2 CoordinateReferenceSystem (org.neo4j.values.storable.CoordinateReferenceSystem)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 Duration (java.time.Duration)1 LocalDate (java.time.LocalDate)1 LocalDateTime (java.time.LocalDateTime)1 LocalTime (java.time.LocalTime)1 OffsetTime (java.time.OffsetTime)1 Period (java.time.Period)1 ZonedDateTime (java.time.ZonedDateTime)1