오픈 소스를 사용할 때 어떻게 "쉽게"자체 솔루션을 만들 수 있는지에 대한 예 로써이 질문과 답변에서 영감을 받아 편집 세션 중에 멀티 파트 기능을 선택적으로 "폭발"하는 자체 코드를 만들려고했습니다.
QGIS 1.8 API 를 처음으로 살펴 보았고 작업을 수행하기 위해 이음새가있는이 코드를 만들었습니다.
layer = qgis.utils.iface.mapCanvas().currentLayer()
remove_list = []
for feature in layer.selectedFeatures():
geom = feature.geometry()
# check if feature geometry is multipart
if geom.isMultipart():
remove_list.append(feature.id())
new_features = []
temp_feature = QgsFeature(feature)
# create a new feature using the geometry of each part
for part in geom.asGeometryCollection ():
temp_feature.setGeometry(part)
new_features.append(QgsFeature(temp_feature))
# add new features to layer
layer.addFeatures(new_features, False)
# remove the original (multipart) features from layer
if len(remove_list) > 0:
for id in remove_list:
layer.deleteFeature (id)
저는 숙련 된 프로그래머가 아니므로 코드가 가장 효율적이지 않을 수 있습니다.
다음으로 가파른 것은 플러그인을 만드는 것입니다 ... 또는 적어도 시도하십시오!
업데이트 :
플러그인을 만들 수있었습니다. Multipart Split 이라고 하며 QGIS 공식 저장소에서 찾을 수 있습니다.