介绍
Neo4j Spatial 是一个 Neo4j 工具库,旨在方便对数据启用空间操作。特别是,您可以为已定位的数据添加空间索引,并对数据执行空间操作,例如在指定区域内或在兴趣点指定距离内搜索数据。此外,还提供了一些类,将数据暴露给 GeoTools,从而暴露给支持 GeoTools 的应用程序,如 GeoServer 和 uDig。

主要功能包括:
-
从 ESRI Shapefile 以及 Open Street Map 文件导入的实用工具
-
支持所有常见的几何类型:点、线串、多边形等
-
用于几何快速搜索的 RTree 索引
-
搜索期间支持拓扑操作(包含、在内、相交、覆盖、不相交等)
-
能够在任何数据图上启用空间操作,无论空间数据如何存储,只要提供适配器将图映射到几何形状。
-
能够将单个图层或数据集分割成多个具有预配置过滤器的子图层或视图
入门
开始使用 neo4j-spatial 最简单的方法是,从最新版本中获取 neo4j-spatial-server-plugin-x.x.x-with-dependencies.jar
,将其复制到您的 $NEO4J_HOME/plugins
目录并重启 Neo4j 服务器。
之后,您可以在 Cypher 查询中使用所有空间过程和函数,将节点添加到空间索引并执行许多空间点、距离和相交查询。
CALL spatial.addPointLayer('geom');
CALL spatial.layers();
CREATE (n:Node {latitude:60.1,longitude:15.2})
WITH n
CALL spatial.addNode('geom',n) YIELD node
RETURN node;
CALL spatial.bbox('geom',{lon:15.0,lat:60.0}, {lon:15.3, lat:61.0});
一篇关于如何将其与 Neo4j 驱动程序之一结合使用的优秀博客文章是 Legis 图中的空间过程,作者是 William Lyon (第一部分)。
Max de Marzi 在他关于餐厅推荐的两部分博客文章中解释了 spatial-server-plugin。
Craig Taverner 的这篇博客文章中提供了 Neo4j Spatial 的一般性介绍以及如何使用 Spatial Java API 的简单示例。