방금 수동으로 (그리고 다소 부정확하게 확신합니다) 카운티 다각형의 경계 상자 좌표를 검색했습니다. 이는 카운티 모양의 더 큰 레이어에서 선택한 것입니다. QGIS 플러그인 또는 다른 기능을 사용하여 이것을 직접 수동으로 계산할 수 있기를 원합니다. 이것은 거의 가능하지만 Google 검색으로 아무것도 찾을 수 없습니다
방금 수동으로 (그리고 다소 부정확하게 확신합니다) 카운티 다각형의 경계 상자 좌표를 검색했습니다. 이는 카운티 모양의 더 큰 레이어에서 선택한 것입니다. QGIS 플러그인 또는 다른 기능을 사용하여 이것을 직접 수동으로 계산할 수 있기를 원합니다. 이것은 거의 가능하지만 Google 검색으로 아무것도 찾을 수 없습니다
답변:
다음의 작은 파이썬 함수는 현재 활성화 된 지형지 물의 경계 상자 좌표를 출력합니다.
def printBB():
feature = iface.activeLayer().selectedFeatures()[0]
print feature.geometry().boundingBox().toString()
함수를 정의하려면 플러그인 메뉴에서 Python 콘솔을 열고 세 줄을 복사하여 콘솔에 붙여 넣은 다음 Enter 키를 누릅니다. 그런 다음 printBB()
원하는 기능을 선택한 상태에서 enter를 입력 하고 눌러 기능을 호출 할 수 있습니다 .
QGIS는 Layer Extent의 Polygon을 통해이를 수행 할 수 있습니다
스톡 콘텐츠-연구 도구-레이어 범위에서 다각형
XMIN XMAX YMIN YMAX AREA WIDTH HEIGHT와 같은 속성을 가진 새로운 shapefile을 생성합니다
Use only selected obects
하고 calculate for every object
얻어야합니다.
파이썬에서 PyShp 플러그인을 사용 하여이 작업을 수행 할 수도 있습니다. 훨씬 간단합니다 ...
import shapefile
sf = shapefile.Reader("Path to shapefile...")
shapes = sf.shapes()
bbox = shapes[0].bbox # Retrieves the bounding box of the first shape
print bbox # Will print the bounding box coordinates
PyShp 및 기타 기능에 대한 자세한 내용은 여기를 참조하십시오 .
다른 곳에서 목록으로 가져올 수있는 필드를 생성하려면이 작업을 수행해야합니다.
필드 표현식에 다음과 같이 입력하십시오.
bb = $geom.boundingBox().toString()
bb = bb.replace(' ','')
bb = bb.replace(':',',')
value = bb
운영
빠른 액세스를 위해 옵션은 bbox 좌표를 속성 테이블에 유지하는 것입니다.
LEFT 좌표가있는 속성 테이블에 새 필드가 표시됩니다.
표현식이있는 RIGHT, BOTTOM, TOP에 대해이를 반복하십시오.
그런 다음 기능이 변경 될 때 자동 필드 플러그인 을 설정 하여 이러한 필드를 자동으로 업데이트 할 수 있습니다 .
File "<input>", line 4 printBB() ^ SyntaxError: invalid syntax