QGIS 레이어의 모든 선을 정점에서 ( 이와 같이 ) 자동으로 분할하고 싶습니다 .
Google 검색을 수행 하고이 기사를 찾았습니다. 이 기사 는 매우 가깝지만 워크 플로우는 복잡합니다. 이 도구를 사용하려면 GIS에 익숙하지 않은 동료를 교육해야하므로 플러그인이나 GRASS가 필요하지 않은 간단한 도구를 원합니다. 이전 답변 의 시간 인 2010 년부터 오랜 시간이 지났으므로 동일한 결과를 얻는 더 좋은 방법이 있는지 궁금합니다.
QGIS 레이어의 모든 선을 정점에서 ( 이와 같이 ) 자동으로 분할하고 싶습니다 .
Google 검색을 수행 하고이 기사를 찾았습니다. 이 기사 는 매우 가깝지만 워크 플로우는 복잡합니다. 이 도구를 사용하려면 GIS에 익숙하지 않은 동료를 교육해야하므로 플러그인이나 GRASS가 필요하지 않은 간단한 도구를 원합니다. 이전 답변 의 시간 인 2010 년부터 오랜 시간이 지났으므로 동일한 결과를 얻는 더 좋은 방법이 있는지 궁금합니다.
답변:
Processing Toolbox의 분해 선 은 정점의 모든 선을 별도의 선으로 분할합니다.
메뉴 처리-> 도구 상자. 검색 필드에 "explode"를 입력하여 기능을 찾으십시오. 드롭 다운에서 선 레이어를 선택하고 시작하십시오. 새 레이어가 생성됩니다.
선 레이어에서 하나 이상의 선을 선택하면 이러한 피처 만있는 분할 된 레이어가 만들어지고 나머지는 버려집니다.
참고 : QGIS가 빠르게 이동함에 따라 아래의 모든 정보는 이미 오래되었습니다.
SEXTANTE 툴박스를 통해 Explode 라인 이 멍청한 해결책 이라고 생각 합니다. . 불행히도, 그것은 현재 작동하지 않는 것 같습니다. 오류 메시지 만 나타납니다.
QGIS Geoalgorithms > Vector geometry tools > Explode lines
Traceback (most recent call last): File "path/.qgis//python/plugins\sextante\core\GeoAlgorithm.py", line 145, in execute self.processAlgorithm(progress) File "path/.qgis//python/plugins\sextante\algs\Explode.py", line 58, in processAlgorithm features = QGisLayers.features(layer) NameError: global name 'layer' is not defined
효과적인 해결책은
Split Feature
"기여 된"저장소 의 -Plugin입니다.일반적으로 별도의 플러그인보다 sextante 기능을 선호하므로 sextante의 워크 플로우가 훨씬 빠르며 중간 단계의 정크 파일을 생성하지 않습니다 (작동하는 경우).
편집 : 불행히도 많은 플러그인이 아직 공식 플러그인 저장소로 이동하지 않았지만 여전히 "기여 된"플러그인 저장소를 통해서만 사용할 수 있습니다 : http://pyqgis.org/repo/contributed . 기본 저장소에서 제거되었습니다 버전 1.8 목록.
여기에서 개별적으로 다운로드하여 .qgis / python / plugins 폴더에 압축을 풀거나 플러그인 저장소 목록에이 주소를 추가 할 수 있습니다.
Plugins -> Fetch python plugins -> Tab "Repositories" -> Add ... -> enter a name and the url.
segment_list = []
for feature in feature_list:
vertices = feature.geometry().asPolyline() # returns list of vertices comprising polyline
for point in range(len(vertices)-1):
segment = QgsFeature()
segment.setGeometry(QgsGeometry.fromPolyline([vertices[point], vertices [point+1]]))
segment.setAttributes(feature.attributes())
segment_list.append(segment)