当前位置:   article > 正文

NEO4J空间索引_neo4 空间索引查询

neo4 空间索引查询

Neo4j空间索引可以对数据进行空间索引,例如在指定区域内以某个感兴趣的点作为起始,搜索指定距离内其它感兴趣的点。可以方便地将空间索引的节点数据与已有图数据结合分析。

1、创建图层

CALL spatial.addPointLayer('geom')
  • 1

在这里插入图片描述

2、查看已经创建的图层列表

CALL spatial.layers()
  • 1

在这里插入图片描述

3、建立空间点并将新创建的点加入到geom图层中

MERGE (n:Node {longitude:15.2,latitude:60.1}) WITH n 
CALL spatial.addNode('geom',n) YIELD node RETURN node
  • 1
  • 2

在这里插入图片描述

4、查询维度在60.0到60.2之间,经度在15.0到15.3之间的空间点

CALL spatial.bbox('geom',{longitude:15.0,latitude:60.0},{longitude:15.3,latitude:60.2}) YIELD node RETURN node
  • 1

在这里插入图片描述

5、导入全国公路shp文件

数据下载地址

// 将*.shp,*.dbf,*.shx文件移动到neo4j安装根目录下
CALL spatial.addWKTLayer('layer_roads','geometry')
CALL spatial.importShapefileToLayer('layer_roads','roa_4m.shp')
  • 1
  • 2
  • 3

6、查询一个矩形内的图形语句

CALL spatial.bbox('layer_roads',{longitude:14.0,latitude:60.0},{longitude:19.3,latitude:81.0}) YIELD node RETURN node.name as name
  • 1

7、查询一个多边形内的点

WITH "POLYGON((15.3 60.0,15.3 62.0,15.2 60.2,15.4 65.0))" as  polygon
CALL spatial.intersects('layer_roads', polygon) YIELD node RETURN node.name as name
  • 1
  • 2

8、WithinDistance - 查询点周边distance(0.1km)以内的点

CALL spatial.withinDistance('geom',{longitude:15.2,latitude:60.1},0.1) YIELD node RETURN node LIMIT 10
  • 1

在这里插入图片描述

9、批量节点构建空间索引

CALL spatial.addPointLayer('geom')
UNWIND [{name:'a',latitude:60.1,longitude:15.2},{name:'b',latitude:60.3,longitude:15.5}] as point CREATE (n:Node) SET n += point WITH n 
CALL spatial.addNode('geom',n) YIELD node RETURN node.name as name
  • 1
  • 2
  • 3

neo4j-spatial-plugin downloa
neo4j根据经纬度计算两点之间的距离

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/1013660
推荐阅读
相关标签
  

闽ICP备14008679号