Search in sources :

Example 1 with Geometry

use of org.neo4j.graphdb.spatial.Geometry in project neo4j by neo4j.

the class GraphDatabaseServiceExecuteTest method shouldBeAbleToUseExternalGeometryAsParameterToQuery.

@Test
public void shouldBeAbleToUseExternalGeometryAsParameterToQuery() throws Exception {
    // given a point created from public interface
    GraphDatabaseService graphDb = new TestGraphDatabaseFactory().newImpermanentDatabase();
    Geometry geometry = makeFakePointAsGeometry(144.317718, -37.031738, makeWGS84());
    // when passing as params to a distance function
    Result result = graphDb.execute("RETURN distance(point({longitude: 144.317718, latitude: -37.031738}),{previous}) AS dist", map("previous", geometry));
    // then
    Double dist = (Double) result.next().get("dist");
    assertThat(dist, equalTo(0.0));
}
Also used : Geometry(org.neo4j.graphdb.spatial.Geometry) GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) TestGraphDatabaseFactory(org.neo4j.test.TestGraphDatabaseFactory) Result(org.neo4j.graphdb.Result) Test(org.junit.Test)

Example 2 with Geometry

use of org.neo4j.graphdb.spatial.Geometry in project neo4j by neo4j.

the class Neo4jJsonCodec method writeValue.

@Override
public void writeValue(JsonGenerator out, Object value) throws IOException {
    if (value instanceof PropertyContainer) {
        writePropertyContainer(out, (PropertyContainer) value, TransactionStateChecker.create(container));
    } else if (value instanceof Path) {
        writePath(out, ((Path) value).iterator(), TransactionStateChecker.create(container));
    } 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<>(), "name", crs.getType(), "type", "link", "properties", genericMap(new LinkedHashMap<>(), "href", crs.getHref() + "ogcwkt/", "type", "ogcwkt")));
    } else {
        super.writeValue(out, value);
    }
}
Also used : Path(org.neo4j.graphdb.Path) Geometry(org.neo4j.graphdb.spatial.Geometry) PropertyContainer(org.neo4j.graphdb.PropertyContainer) Coordinate(org.neo4j.graphdb.spatial.Coordinate) CRS(org.neo4j.graphdb.spatial.CRS) Point(org.neo4j.graphdb.spatial.Point) LinkedHashMap(java.util.LinkedHashMap) MapUtil.genericMap(org.neo4j.helpers.collection.MapUtil.genericMap) Map(java.util.Map) LinkedHashMap(java.util.LinkedHashMap)

Example 3 with Geometry

use of org.neo4j.graphdb.spatial.Geometry in project neo4j by neo4j.

the class Neo4jJsonCodecTest method testGeometryWriting.

@Test
public void testGeometryWriting() throws IOException {
    //Given
    List<Coordinate> points = new ArrayList<>();
    points.add(new Coordinate(1, 2));
    points.add(new Coordinate(2, 3));
    Geometry value = new MockGeometry("LineString", points, mockCartesian());
    //When
    jsonCodec.writeValue(jsonGenerator, value);
    //Then
    verify(jsonGenerator, times(3)).writeEndObject();
}
Also used : Geometry(org.neo4j.graphdb.spatial.Geometry) Coordinate(org.neo4j.graphdb.spatial.Coordinate) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Aggregations

Geometry (org.neo4j.graphdb.spatial.Geometry)3 Test (org.junit.Test)2 Coordinate (org.neo4j.graphdb.spatial.Coordinate)2 ArrayList (java.util.ArrayList)1 LinkedHashMap (java.util.LinkedHashMap)1 Map (java.util.Map)1 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)1 Path (org.neo4j.graphdb.Path)1 PropertyContainer (org.neo4j.graphdb.PropertyContainer)1 Result (org.neo4j.graphdb.Result)1 CRS (org.neo4j.graphdb.spatial.CRS)1 Point (org.neo4j.graphdb.spatial.Point)1 MapUtil.genericMap (org.neo4j.helpers.collection.MapUtil.genericMap)1 TestGraphDatabaseFactory (org.neo4j.test.TestGraphDatabaseFactory)1