2011-04-20 3 views
0

저는 Postgis에서 새롭고 동일한 두 점, 시작점 및 끝점을 지오메트리 선 스트링에주고 싶습니다 (지오메트리 유형은 선 스트링 임). 이 선 스트링은 도로, 강, 지하 파이프 등을 나타냅니다.PostGIS 다중 선 두께 측정

'length3d'라는 Postgis 함수를 사용하여 하나의 행 (표의 레코드 하나)을 측정 할 수 있지만 여러 행이 연속적으로 있어야합니다. 이 예제와 같은 것 (설명 예제의 다음 주석 사용)

  • | S | -> 라인 시작점
  • | E | -> 선 끝점
  • @ - 라인> 포인트
  • (들) -> 사용자 시작 지점
  • (E) -> 사용자 엔드 포인트

예 :

|S|[email protected][email protected]===(s)==|E-S|[email protected][email protected][email protected]==|E-S|[email protected][email protected]===(e)[email protected]==|E| 

선 스트링 형식 :

LINESTRING(-6.366424 38.93301,-6.3625 38.938,-6.361 38.9572,-6.36158230284898 38.9397667955807,-6.36131118520776) 

사용자 점 betwe 수 기존 라인을 구성하는 두 개의 점.

| S | ~ | E-S | DB상의 레코드 하나입니다. | E-S | ~ | E-S | 다른 레코드와 | E-S | ~ | E | 다른 기록입니다.

(s)에서 (e)까지의 거리는 어떻게 측정 할 수 있습니까?

미리 감사드립니다.

답변

1

PL/pgSQL을 사용하면 경로의 각 구성 요소 ([E-S], [E-S]에서 [E-S] 등)를 측정하는 기능을 만들 수 있습니다.

(들)과 (e) 사이의 선을 나타내는 임시 선 스트링 (또는 다중 선 스트링)을 작성한 다음 ST_Length3D을 직접 사용할 수 있습니다.