2

我已经Neo4j Spatial (neo4j-spatial-0.16-neo4j-3.0.0-server-plugin.jar)从源代码编译了最新的并将其放入我的Neo4j 3.0.0插件文件夹中。

该扩展名列在浏览器中,我可以POST调用空间功能。

但是,我相信我也应该能够使用漂亮的新CALL功能Neo4j 3.0.0Cypher拨打电话,如下所示:

CALL spatial.addPointLayer('cities');

正如 Stefan 在此处的更新所暗示的:

如何仅使用密码在 Neo4j 中创建空间索引?

并显示在这里:

http://jexp.github.io/graphgist/idx?dropbox-14493611%2Fcypher_spatial.adoc

但是,我收到“没有spatial.addPointLayer为此数据库实例注册的名称的过程”。错误,并且在 jexp 示例中也可以看到相同的调用失败......我不确定我是否太早参加聚会或错过了什么?

4

2 回答 2

0

该插件需要位于特定于数据库的插件文件夹中,而不是位于“Neo4j CE 3.0.x/Plugins”文件夹中。

于 2016-05-13T23:22:57.707 回答
0

在 Neo4j 3.0 中,对于基本操作,您不需要空间插件。

默认支持pointdistance。此支持假定您将 lat/lon 属性键设置为latitudelongitude

您可以使用它们来计算两个节点之间的距离,例如:

MATCH (a:City {name:'London'}), (b:City {name:'Barcelona'})
RETURN distance(point(a), point(b))/1000 as dist

您可以在此 graphgist 中找到详细示例:

http://gist.asciidoctor.org/?dropbox-14493611%2Fcypher_spatial.adoc#_spatial_procedures

其次,在 Neo4j 3.0 中出现了存储过程,这里 Neo4j 支持官方的一套程序:

https://github.com/neo4j-contrib/neo4j-apoc-procedures

这提供了更多的空间特征。

于 2016-05-14T13:22:22.533 回答