리서치 도구 "Regular Points"를 사용하여 다각형 내에서 특정 수의 점을 생성했지만 다각형 모양 내 에서만가 아니라 사각형의 격자 그리드를 형성합니다. 다각형 내에 특정 개수의 점이 필요하므로 시행 착오없이 그렇게 할 수있는 방법이 있습니까?
예를 들어 현재 25 포인트 중 8 포인트 만 다각형 내에 있지만 25 포인트를 원하므로 50 포인트까지 늘려서 다각형 내에 나타나는 포인트 수를 볼 수 있습니다
리서치 도구 "Regular Points"를 사용하여 다각형 내에서 특정 수의 점을 생성했지만 다각형 모양 내 에서만가 아니라 사각형의 격자 그리드를 형성합니다. 다각형 내에 특정 개수의 점이 필요하므로 시행 착오없이 그렇게 할 수있는 방법이 있습니까?
예를 들어 현재 25 포인트 중 8 포인트 만 다각형 내에 있지만 25 포인트를 원하므로 50 포인트까지 늘려서 다각형 내에 나타나는 포인트 수를 볼 수 있습니다
답변:
레이어 경계면에서 QGIS가 참조하는 것은 실제로 지오메트리의 봉투 또는 경계 상자입니다.
나는 당신이 이것을 자동화하는 가장 가까운 해결책을 문서화했습니다 (버그 / 기능 요청을 제출하는 것이 부족합니다).
프로세스는 두 객체의 영역 간 비율 (특징 형상 및 경계 상자)에 따라 작동합니다.
아래의 단계를 확인하십시오.
작업하려는 레이어를 선택하십시오.
작업하려는 기능을 선택하십시오. 다른 항목이 선택되어 있지 않은지 확인하십시오.
Python 콘솔 내에서 다음 스 니펫을 실행하십시오.
layer = qgis.utils.iface.activeLayer()
features = layer.selectedFeatures()
feature = features[0]
geom = feature.geometry()
env_rect = geom.boundingBox()
env_geom = QgsGeometry.fromRect(env_rect)
env_geom.area() / geom.area()
마지막 줄이 자동으로 반환되지 않으므로 Enter 키를 누르십시오.
Regular Points
도구를 다시 실행 하되 상자 내부에 원하는 포인트 수를 스크립트가 제공 한 출력으로 곱한 값 을 입력하십시오.
아래 샘플에서 출력에서받은 결과는 ~ 2의 값이었습니다. 실제로 10 개만 원했던 프로세스에서 20 개의 점을 출력하도록 요청했습니다. 8 개를 돌려주었습니다. 실제 모양에 따라 결과가 달라질 수 있습니다.
너무 기울어지면 원하는 수에 도달 할 때까지 변수를 수정하는 정규 포인트 프로세스를 (재귀 적으로) 자동화 할 수 있습니다.
스크린 샷에서 간단한 솔루션을 제안합니다. 을 사용하여 다각형을 새 레이어로 추출하고 Vector -> Data Managment Tools -> Split vector layer
가져온 다음 "정규 포인트"샘플러의 입력 레이어로 원하는 피처 (ID)가있는 레이어를 선택할 수 있습니다.
소수의 다각형에 대해서만이 작업을 수행해야하는 경우 다각형을 찾아 별도로 내보내는 것이 더 효율적일 수 있습니다. 하나를 선택했으면 레이어 이름을 마우스 오른쪽 버튼으로 클릭 Save Selection As ...
하고을 선택하고 shapefile을 선택한 다음 나머지를 채우고 이전과 같이 반복하십시오.
편집 : 이미 단일 기능을 가지고 있기 때문에 더 단순한 것을 생각할 수는 없지만 밀도가 높은 그리드를 사용하여 다각형과 다시 교차하고 마지막으로 모든 외부 점을 제거합니다 (속성 테이블을 통해 가장 쉽게 센터링 할 수 있음) 총 합계).