ST_Distance 함수를 사용하여 두 기하학 (기차역과 건물) 사이의 거리를 계산하고 있습니다. 모든 건물과 모든 기차역이 우수하고 완전한 거리 격자가있는 시카고에 있다는 것을 알고 있으므로 맨해튼 을 사용하고 싶습니다 (또는 택시) 거리 .
이에 대한 일반적인 공식은 X의 차이에 Y의 차이를 더한 것이므로 Abs (X1-X2) + Abs (Y1-Y2)입니다.
어떤 PostgreSQL 쿼리가이 작업을 수행합니까?
1
여기서 간단히 생각해보십시오. 그리드 'x'와 'y'는 반드시 좌표 시스템의 'x'와 'y'와 일치하지 않아도됩니다. 따라서 성분을 추출하고 계산하기 전에 벡터를 회전시켜야 할 수도 있습니다.
—
Craig Ringer
@CraigRinger 좌표를 로컬에서 널리 사용되는 투영, EPSG 3435, 일리노이 StatePlane East Feet로 변환합니다. 이것은 시카고 시가 모든 GIS 작업에 사용합니다. Google지도 보행 거리 계산을 사용하여 일부 유효성 검사로 내 질문에 대답했습니다.
—
stevevance
pgRouting 모듈로 PostGIS 데이터를 확장 하고 내장 기능을 사용하는 것도 고려해 보셨습니까 ? 분명히 A * 방법은 비슷한 것을 사용합니다 .
—
RyanKDalton
@RyanDalton 나는 내 다른 프로젝트에 pgRouting을 사용하는 것을 고려 했지만 이 프로젝트에 대한 프로젝트 를 설정하는 번거 로움은 경로를 계산하는 데 더 정확한 결과 또는 리소스 비용이 가치가 없습니다.
—
stevevance