我在堆栈上看到了一些帖子,展示了如何创建一个simplePointLayer。但是,这个过程对我来说是失败的。 我正在使用Neo4J版本3.0.2和空间插件版本3.0.2。
这些页面中的每一页都包含用于创建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人,所以我不确定如何处理类路径。有没有人在\之前遇到此错误\知道如何处理这个问题?
答案 0 :(得分:1)
目前,随着Neo4j 3.0中用户定义程序的引入,空间库略有变化。具体来说:
程序正在成为与空间交互的推荐方式,
索引提供程序已从空间库中删除(导致您遇到的错误)
通过程序,您现在可以访问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。