栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.3) - 地图和空间相关功能

Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.3) - 地图和空间相关功能

1. 概述

从Neo4j 3.5以后,地理坐标作为Point数据类型成为数据库模式支持的类型,另外数据库也提供基本的操作函数,例如计算两个坐标之间距离的函数distance()。更多关于Neo4j坐标类型和函数操作的介绍请参见:Spatial functions - Neo4j Cypher Manual。

        因此,一些在早期APOC版本中包含的关于地理位置的过程和函数已经不再需要。APOC目前仍然提供的相关过程如下。注意,默认情况下APOC使用来自OpenStreetMap的地址服务。可以在neo4j.conf中指定使用的地图服务(OpenStreetMap或者GoogleMap):

neo4j.conf

# 指定地图服务提供商opencage
apoc.spatial.geocode.provider=opencage

apoc.spatial.geocode.opencage.key=XXXXXXXXXXXXXXX

apoc.spatial.geocode.opencage.url=
http://api.opencagedata.com/geocode/v1/json?q=PLACE&key=KEY

apoc.spatial.geocode.opencage.reverse.url=
http://api.opencagedata.com/geocode/v1/json?q=LAT+LNG&key=KEY
 

如果要使用其他地图数据服务商,需要指定服务的正向和反向查询URL。可参考下面的配置(以opencage为例):

neo4j.conf

# 可用取值有:osm, google, opencage
apoc.spatial.geocode.provider=osm

# OpenStreetMap查询请求之间的延迟,单位为ms
apoc.spatial.geocode.osm.throttle=5000

# GoogleMap查询请求之间的延迟,单位为ms
apoc.spatial.geocode.google.throttle=1

# 访问GoogleMap的key
apoc.spatial.geocode.google.key=xxxx

# 访问GoogleMap的client ID

apoc.spatial.geocode.google.client=xxxx

# 访问GoogleMap的用户signature
apoc.spatial.geocode.google.signature=xxxx
 

名称

说明

apoc.spatial.geocode('address')
YIELD location, latitude, longitude, description

从地理编码服务中查找位置的地理坐标,返回空或多个结果(最多100条)。

apoc.spatial.geocodeonce('address')
YIELD location, latitude, longitude, description

从地理编码服务中查找位置的地理坐标,返回空或者1个结果。

apoc.spatial.reverseGeocode(
  latitude,longitude
)
YIELD location, latitude, longitude, description

从地理编码服务中查找经度和纬度的地址。

apoc.spatial.sortPathsByDistance(
  Collection
)
YIELD path, distance

根据路径节点上的纬度/经度属性,按地理距离对给定的路径集合进行排序。

2. 过程概述 – apoc.spatial.geocode
// 返回给定地址的地理坐标
CALL apoc.spatial.geocode(address)
YIELD location, latitude, longitude, description

3. 示例 – apoc.spatial.geocode
// (1) 返回天安门广场的地理坐标。

CALL apoc.spatial.geocode('天安门广场')
YIELD location, latitude, longitude, description
RETURN * 
4. 过程调用接口 – apoc.spatial.reverseGeocode
CALL apoc.spatial.reverseGeocode(
  latitude,longitude
) 
YIELD location, latitude, longitude, description
5. 示例 - apoc.spatial.reverseGeocode
// (2) 返回地理坐标对应的地址信息。

CALL apoc.spatial.reverseGeocode(
   39.905, 116.397
) 
YIELD location, latitude, longitude, description
RETURN * 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/279947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号