나는 GIS 세계, 특히 PostGIS에 익숙하지 않기 때문에 대답이 분명 해지면 실례합니다.
여러 건물을 분석하고 싶습니다. 내가 관심이있는 것은 정면 방향과 각각의 방향입니다. 아래 그림과 같이 일련의 다각형에서 모든 가장자리의 길이와 (정상) 방향을 원합니다. 이 예에서는 하나의 표면 만 강조했습니다.
결과 테이블 은 다음과 같습니다.
building_id | edge_id | orientation | edge_length
-------------------------------------------------
1 | 1 | 315 | 10.0
1 | 2 | 45 | 7.0
1 | ... | ... | ...
그러나 추가 처리를 위해 결과를 저장하는 현명한 방법인지 확실하지 않습니다 (예 : 가장자리에서 다음 건물까지의 거리 계산 등). 그래서 내 질문은 두 가지입니다.
- 다각형의 가장자리를 분석 할 수있는 효율적인 PostGIS 기능이 있습니까? 네이티브 PostGIS 함수가없는 경우 파이썬 기반 접근 방식에 관심이있을 것입니다.
- 다각형의 가장자리 수가 다를 수 있으므로 결과를 PostGIS 테이블에 저장하는 현명한 방법은 무엇입니까?
2
먼저 다각형의 세그먼트를 만듭니다. stackoverflow.com/questions/7595635/… 그런 다음 시작점 및 끝점 좌표는 x1, y1 및 x2, y2와 같은 열과 ST_Azimuth (ST_Startpoint (geometries), ST_Endpoint (geometries))보다 열로 이동해야합니다. . ( postgis.org/docs/ST_Azimuth.html )
—
Tamas Kosa
@TamasKosa : 당신은 좋은 대답의 본질이 있습니다. 왜 하나로 확장하지 않습니까? 또한 법선의 경우 방위각에는 +/- pi / 2가 필요합니다.
—
Martin F
@TamasKosa 이것은 또한 내가 생각했던 접근법입니다. ST_ExteriorRing을 사용 하고 말한대로 방위각을 구하십시오. 건물의 가장자리 수가 다를 수 있으므로 결과를 이상적으로 저장하는 방법은 무엇입니까? 위에서 설명한 테이블에서? MartinF에 동의합니다. 이것은 거의 답입니다.)
—
n1000
궁금한 점, 왜 노멀을 원하십니까? 태양 노출?
—
Martin F
귀하의 질문의 첫 번째 부분은 ST_Dumppoints 및 ST_Azimuth를 사용할 수 있습니다. 두 번째 부분에서는 출력에 공간 요소가 없기 때문에 내가 찾듯이 polygonID 및 edge_id에 대한 링크를 생각합니다.
—
존 파월