세그먼트 간 거리를 기준으로 집계 선


12

최적화 하는 VectorTile 베이스 맵이 있습니다 (개별 타일의 크기를 줄이기 위해 노력). 타일 크기의 주요 부분은 도로 데이터 (지오메트리 및 속성)입니다. 줌 레벨을 기반으로 개별 도로 형상을 단순화하고 줌 레벨을 기반으로 도로를 집계 하려고 노력 하고 있습니다.

도로는 Postgis 테이블 (각 확대 / 축소 수준에 대한 개별 테이블)에 저장되며 표시 될 확대 / 축소 수준을 기반으로 도로를 집계하고 싶습니다. 예를 들어, 확대 / 축소 수준 5 테이블에서 서로 일정 거리 내에있는 도로를 집계하고 도로 구간에 대해 단일 선을 만들고 싶습니다. 여기에 이미지 설명을 입력하십시오

해당 줌 레벨에서 개별 도로를 만들 수 없기 때문에 : 여기에 이미지 설명을 입력하십시오

도로 구간 간의 거리를 기준으로 도로 형상을 집계하려면 어떻게해야합니까?

추신 : Linux에서 PostGIS 및 QGIS 작업을하고 있지만 오픈 소스 플랫폼 또는 기술을 사용하는 솔루션에 개방적입니다.


도로에 공통 ID가 있습니까 (예 : A50의 줌 레벨 5에서 ​​2 개의 차선이 2 개의 선으로 표시되지만 레벨 4에서 1 개의 린으로 표시되며 모두 "A50"을 속성으로 사용합니까?
AnserGIS

모든 줌 레벨에서 두 줄로 표시됩니다. 고속도로와 고속도로에는 고속도로의 "M-2"와 같은 공통 속성이 있습니다.
Hasan Mustafa

답변:


5

이 OS 옵션 Skeletron 을 살펴보십시오.

폴리곤 버퍼 및 보로 노이 다이어그램을 사용하여 라인 모음을 특정 구형 메르카토르 줌 레벨 및 픽셀 정밀도로 일반화

논문은 1996 년 Alnoor Ladak과 Roberto B. Martinez의 "정확한 도로 중심가의 Thiessen Polygons Techniques의 자동화 된 파생물"을 기반으로합니다.

몇 가지 의존성이 필요합니다.

필수 종속성 :
- qhull 바이너리 ( http://www.qhull.org )
- 매끈한 1.2+ ( http://pypi.python.org/pypi/Shapely )
- pyproj ( http://code.google.com/p / pyproj ) -networkx
1.5 이상 ( http://networkx.lanl.gov )
-StreetNames 0.1+ ( https://github.com/nvkelso/map-label-style-manual/tree/master/tools/street_names )

참고 : 이것은 탐색을위한 참조로 적용 할 수있는 이전 모델 / 도구입니다.


1
Skeletron이 갈 수있는 방법이라고 생각하지만 귀하의 회신은 readme 파일의 과거 사본 일 뿐이며 esri 웹 사이트 링크는 죽었습니다. kartographie.geo.tu-dresden.de/downloads/ica-gen/workshop2004/… :지도의 기능을 보여주는 링크 입니다. 정말 멋지지만 그것을 사용하려고 할 때 그것을 사용하는 방법을 몰랐습니다. use 또는 setup.py --help 명령으로 일부 뇌물을 제외한 문서를 찾지 못했습니다. 누군가가 그 lib를 어떻게 사용하는지 설명하면 그에게 현상금을줍니다.
Hugo Roussaffa-GeoDatup

또한 내가 볼 수있는 한 OSM 도로를 입력으로 사용합니다. 모든 유형의 회선에서 작동 할 수있는 솔루션을 원합니다. 아직도, 나는 그 뒤에 과학을 정말로 좋아합니다. 이것을 다른 시나리오에도 적용하고 싶습니다.
Hasan Mustafa

귀하의 의견을 반영하여 게시물을 업데이트했으며 의견을 보내 주셔서 감사합니다.
whyzar

4

옵션이라면 ArcGIS가 가장 간단합니다. 나는 OP 지정 OS를 알고 있지만, OS 옵션은 단지 매우 도움이 보지 않는 한 나는에 비해이 언급 : http://resources.arcgis.com/en/help/main/10.1/index.html#/Merge_Divided_Roads/00700000000w000000 /

이 질문에 대한 답변은 몇 가지 오픈 소스 옵션을 제공합니다. 인근 및 평행 도로 노선 (예 : 이중 차도)을 한 줄로 병합 / 축소 할 수 있습니까?

코딩하면 정점을 기준으로 평균 좌표 위치를 계산할 수 있습니다.

  1. 출력에서 "모두 병합"옵션으로 도로를 버퍼링하십시오.
  2. 다각형의 중심선을 가져옵니다
  3. 교차점에서 JUMP 분할 선을 사용하여 접합점에서 선 분할
  4. 공간 특성 다시 결합

ArcGIS 'Polygon to Center line'도구와 동등한 OS가없는 것 같습니다. 나는 제안 할 수있다 :

ㅏ. 보로 노이 다이어그램을 만들고 골격을 가져옵니다.
비. 유클리드 거리 래스터를 생성하고 중심 값을 추출하여 선으로 변환

... 아마도 다른 사람들도있을 것입니다.

마지막으로 규모와 응용 프로그램에 따라 두 줄 중 하나만 삭제해도됩니다. 부정확성이 중요합니까?


ArcGIS 옵션은 좋아 보이는 것 같습니다.하지만 OS 솔루션을 선호합니다. 정점을 기준으로 평균 좌표 위치를 계산하는 것이 폴백 전략입니다. 나는 당신이 열거 한 모든 방법을 시도하고 그들이 나를 위해 작동하는지 볼 것입니다, 감사합니다!
Hasan Mustafa

ArcGIS 도구 'Merge Divided Roads (Cartography)'는 내가 찾고있는 것이지만, 내가하고있는 모든 처리는 Postgres와 QGIS를 사용하는 Linux에서 Windows로 전환하는 데 필요한 도구를 사용하는 것입니다. .
Hasan Mustafa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.