В Neo4j 3.4.x мы ввели пространственные типы данных и индексацию пространственных свойств.
Вам следует просмотреть разделы в документации по пространственным типам и пространственным функциям .
Предположим, что вы используете систему координат WGS-84 (CRS) для сохранения координат долготы / широты в качестве свойств точек на узлах.
Пример установки свойства точек на узле:
CREATE (l:Location {coords:point({ longitude: 56.7, latitude: 12.78 })})
У вас должен быть индекс: Местоположение (координаты), чтобы можно было использовать индекс для быстрого поиска по радиусу расстояния .
Пример, предоставил входные данные $ longitude и $ latitude и $ radius для нахождения всех: местоположений в данном $ radiusKM:
MATCH (l:Location)
WHERE distance(l.coords, point({longitude:$longitude, latitude:$latitude})) <= $radiusKM * 1000
RETURN l