Создание геохэш-отношений в neo4j - PullRequest
0 голосов
/ 11 июня 2018

У меня есть CSV-файлы, которые содержат поля широты / долготы , я хочу преобразовать эту широту / долготу в геохэш и затем установить связь между различными узлами местоположения на основена их значениях геохэш.
как это сделать?

Ответы [ 2 ]

0 голосов
/ 19 июня 2018

Если вы работаете только с данными Point (широта и долгота), вам вообще не нужно использовать пространственный плагин, и вы можете использовать встроенные пространственные функции Neo4j 3.4.Встроенный индекс - это кривая заполнения гильбертового пространства, которая похожа на геохэш, поэтому я предполагаю, что она удовлетворит ваши потребности.Информацию о том, как использовать новые функции, вы можете найти в документации или в некоторых последних блогах:

Если вы специально хотите использовать пространственную библиотеку Neo4j и вам нужен только геохэш, а не связанные и более точные кривые Гильберта, то вы можете использовать процедуры, такие как CALL spatial.addPointLayerGeohash('geom'), а затем добавлять данные с помощью команд, таких как CREATE (n:Node {latitude:60.1,longitude:15.2}) WITH n CALL spatial.addNode('geom',n) YIELD node RETURN node.

0 голосов
/ 11 июня 2018

Neo4j имеет пространственный плагин , который создает R-дерево для ваших геоданных.Таким образом, вместо создания геохеша, вы можете напрямую использовать этот плагин.

Более того, в последней версии Neo4j появилось несколько новых типов свойств, и один из них - point.Посмотрите документацию: https://neo4j.com/docs/developer-manual/3.4/cypher/functions/spatial/

Обновление геохеша с пространственным плагином

Просто создайте geohash layer:

CALL spatial.addPointLayerGeohash('my_geohash_layer_name')

А затем добавьте свой узел вслой:

CREATE (n:Node {latitude:60.1,longitude:15.2}) WITH n 
CALL spatial.addNode('my_geohash_layer_name',n) YIELD node 
RETURN node

Ваши узлы должны иметь свойства latitude & longitude.

...