문제 설명 : 버스 노선 (선 스트링 ln.the_geom으로 정의 됨)과 버스 정류장 위치 (pt1.the_geom, pt2.the_geom, ... ptn.the_geom)가 주어지면 버스 노선을 버스 정류장 사이의 세그먼트로 나눕니다. . 두 개의 postgis 기능을 사용하고 있습니다
ST_line_substring(ln.the_geom,ST_line_locate_point
ln.the_geom,pt1.the_geom),ST_line_locate_point(ln.the_geom,pt2.the_geom))
버스 경로에 겹치는 섹션이없는 경우 위의 방법이 효과적입니다. 그러나 겹치는 섹션이 있으면 ST_line_locate_point가 선 스트링의 다른 쪽 끝에 점을 찍습니다. 예를 들어, 버스는 A에서 B로 이동하고 루프를 만든 다음 B에서 A로 이동합니다. "A에서 B"와 "B에서 A"는 모든 지점이 겹치는 평행 경로입니다. 버스 정류장 P1 및 P2의 경우 P2는 대신 반대 방향으로 P2 '지점에 매핑됩니다. 이 경우 세그먼트가 잘못 추출됩니다 (추가 세그먼트가 포함 된 경우).
이와 같은 문제를 해결하는 방법? 겹치는 버스 노선은 노선의 모든 구간에서 발생할 수 있습니다.
버스 노선의 종점을 식별하고 닫힌 줄을 어느 방향으로나 줄로 나누는 방법이 있습니까? 그러면 더 이상 겹치는 세그먼트가 없습니다. 예를 들어, 선에서 시작점에서 가장 먼 지점을 찾은 다음 해당 지점을 사용하여 선을 두 방향으로 분리 할 수 있습니다.
—
raphael
오래된 질문이지만 섹션의 시작과 포인트를 가져 와서 포인트 데이터 세트와 결합하고 초기 포인트가 끝 포인트보다 큰 섹션을 제거해야합니다. 이것은 말이됩니까?
—
Jorge Sanz 2016 년
주어진 버스 노선에 대한 지오메트리 WKT를 제공 하시겠습니까?
—
kttii