我们在 Grails 项目 2.4.3中使用Spring Data Neo4j 3.2.0和Neo4j-spatial 0.13-neo4j-2.1.6
在用户域中
@Indexed(indexType = IndexType.POINT, indexName = "junctionLocations")
Point wkt
在用户存储库中
@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 获得正确的数据?