2014-09-24 3 views
0

Neo4j Spatial 코어 Java API를 사용하여 주어진 포인트에서 특정 거리 이내에 노드를 조회 할 수있는 코드를 작성할 수 있었지만 노드를 포함 할 수 있기를 바란다. 그들의 집수 반경에 따라. 내가 더 멀리 내 지역 또는 피자 회사가 나에게 전달할 수있는 모든 주어진 지점에 위치하고있는 경우Neo4j Spatial을 사용한 노드 조회

예를 들어, (자신의 배달 반경을 주어)

이이 Neo4j을 달성 할 수있는 방법에 대한 아이디어 공간?

답변

1

피자 회사를지도의 단순한 점으로 모델링하는 대신 관련 지형 모양으로 배달 반지름을 모델링 할 수 있습니까? 이렇게하면 배달 모양을보다 잘 제어 할 수 있습니다 (예 : 섬으로 배달하지 않음).

START loc = node:idx_bounding_location(withinDistance:[<lat>,<lon>,0.0]) 
MATCH (pz:Pizza:Company)-[:DELIVERY_AREA]->loc 
RETURN pz 

위도와 경도 값은 피자 배달을 필요로하는 사람의 위치에있는이 쿼리에서 : 당신이 WKT 다각형으로 제공 영역을 모델링하는 경우

것은, 당신은 그 형태의 검색을 수행 할 수 있습니다.

+0

굉장한 답변 축하합니다! 반경을 가지고 있다면 그것을 모델링하는 최선의 방법을 알고 있습니까? WKT 다각형을 원으로 만들 수 있습니까? – jamesclarke

+0

TBH 어떻게 모양을 만들지 모르겠지만 Neo4J Spatial의 문서에서는'Geometry의 하위 클래스 인 Point, LineString, Polygon 및 기타 모두 JTS에서 온 것입니다. '라는 말로 모든 지오메트리 유형이 지원된다고합니다. 당신이 원했던 것은'CIRCULARSTRING (x1 y1, x2 y2, x3 y3, x4 y4, x1 y1)'이 될 것입니다, 나는 중심에서 좌표를 생성 할 수있는 어딘가에 수학이 있다고 생각합니다. 점과 반경. – JohnMark13