Мы используем Spring Data Neo4j 3.2.0 и Neo4j-пространственной 0,13 Neo4j-2.1.6 в Grails проекта 2.4.3WithinDistance в пространственной индексации не Neo4j дать соответствующий результат
В UserDomain
@Indexed(indexType = IndexType.POINT, indexName = "junctionLocations")
Point wkt
В UserRepository
@Transactional
Result<UserDomain> findWithinDistance(final String indexName, Circle circle)
@Query("START item=node:junctionLocations({0}) RETURN labels(item) as label ,item")
List match(String a)
Так что, когда мы бежим
Iterable<UserDomain> teamMembers1 = userDomainRepository.findWithinDistance
("junctionLocations", new
Circle(new Point(28.6100,77.2300),new Distance(2, Metrics.KILOMETERS)));
Затем дать точные данные , но когда мы бежим
Iterable<UserDomain> teamMembers = userDomainRepository.match("withinDistance:[28.6100,77.2300,2.0]")
, то это не дает каких-либо данных, но если увеличить расстояние до 10000, то это дает данные.
На самом деле мы хотим получить правильные данные, используя Cypher Query. Мы что-то упускаем? Есть ли способ получить правильные данные с помощью Cypher?
Может быть, расстояние по умолчанию составляет метров. Или вам нужно перевернуть lat/lon. Не уверен. –
Если расстояние в метр, то, как следует эту работу Iterable teamMembers1 = userDomainRepository.findWithinDistance ("junctionLocations", новый круг (новый пункт (28.6100,77.2300), новый Distance (2, Metrics.KILOMETERS))); , Я не думаю, что проблема связана с метром или километром –
abhaygarg12493
Это работает, проблема в том, что я переворачиваю lat/lon ... Моя ошибка – abhaygarg12493