如何在Neo4J空间中创建SimplePointLayer?

时间:2016-07-06 18:19:32

标签: java neo4j neo4j-spatial

我在堆栈上看到了一些帖子,展示了如何创建一个simplePointLayer。但是,这个过程对我来说是失败的。 我正在使用Neo4J版本3.0.2和空间插件版本3.0.2。

我一直是hereherehere

这些页面中的每一页都包含用于创建SimplePointLayer的相同说明,如下所示。

这一步对我来说很合适:

public class CustomPagerAdapter {
    private static final int DEFAULT_POSITION = 1;
    public CustomPagerAdapter(Callback callback) {
        callback.onItemSelected(DEFAULT_POSITION);
    }
}

我不知道在哪里可以看到图层列表,但响应是200,所以我假设一切都按预期工作。

以下步骤是我被困的地方:

POST /db/data/ext/SpatialPlugin/graphdb/addSimplePointLayer HTTP/1.1
Host: localhost:7474
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache

{ 
    "layer" : "geom", 
    "lat" : "lat", 
    "lon" : "lon" 
}

我在文件tmp.json上面有json,然后运行

POST /db/data/index/node/ HTTP/1.1
Host: localhost:7474
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache

{ 
    "name" : "geom", 
    "config" : { 
        "provider" : "spatial", 
        "geometry_type" : "point", 
        "lat" : "lat", 
        "lon" : "lon" 
    } 
}

这会生成以下消息:

cat tmp.json | http :7474/db/data/index/node

我不知道从哪里开始。我假设的是''提供商'是插件。我不是JAVA人,所以我不确定如何处理类路径。有没有人在\之前遇到此错误\知道如何处理这个问题?

1 个答案:

答案 0 :(得分:1)

目前,随着Neo4j 3.0中用户定义程序的引入,空间库略有变化。具体来说:

  1. 程序正在成为与空间交互的推荐方式,

  2. 索引提供程序已从空​​间库中删除(导致您遇到的错误)

  3. 通过程序,您现在可以访问Cypher的空间功能:

    创建图层

    CALL spatial.addPointLayer('cities');
    

    将所有城市添加到图层

    MATCH (c:City)
    WITH collect(c) AS cities
    CALL spatial.addNodes('cities',cities) YIELD node
    RETURN count(*)
    

    查找距离内的城市

    MATCH (c:City {name:"Berlin"}) WITH c
    CALL spatial.distance('cities', c , 200) YIELD node, distance
    RETURN node.name AS name, round(distance) AS dist
    

    有关详细信息,请参阅this