我已从源代码编译了最新的Neo4j Spatial
(neo4j-spatial-0.16-neo4j-3.0.0-server-plugin.jar)
并将其放入我的Neo4j 3.0.0
插件文件夹中。
扩展程序列在浏览器中,我可以POST
调用空间功能。
但是,我相信我也应该能够使用CALL
中的漂亮新Neo4j 3.0.0
功能进行Cypher
次呼叫,如下所示:
CALL spatial.addPointLayer('cities');
Stefan的更新提到了这里:
How do I create a spacial index in neo4j using only cypher?
这里显示:
http://jexp.github.io/graphgist/idx?dropbox-14493611%2Fcypher_spatial.adoc
但是,我得到了一个"没有为此数据库实例注册名称为spatial.addPointLayer
的过程。"错误,并且可以在jexp示例中看到相同的调用失败...我不确定我是否太早参加聚会或错过了某些内容?
答案 0 :(得分:0)
插件需要位于特定于数据库的插件文件夹中,而不是在" Neo4j CE 3.0.x /插件"文件夹中。
答案 1 :(得分:0)
在Neo4j 3.0中,对于基本操作,您不需要空间插件。
默认支持point
和distance
。此支持假定您将lat / lon属性键设置为latitude
和longitude
。
您可以使用它们来计算两个节点之间的距离,例如:
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
这提供了一些更多的空间特征。