Daha çox

Pyqgis istifadə edərək bir xətt xüsusiyyətini kəsən çoxbucaqlı xüsusiyyətləri seçin


Bir çoxbucaqlı təbəqədə bir xətt xüsusiyyətini kəsən (üst -üstə düşən) bütün xüsusiyyətləri necə seçə bilərəm?

Bunu tətbiq etməliyəm QGIS istifadə edərək python, beləliklə pyqgis. Bu kod axtardığımı göstərir (10-cu sətir yalançı koddur, yəni axtardığım şeydir):

1 area_layer_file = "./Areas.shp" 2 line_layer_file = "./Lines.shp" 3 4 area_layer = QgsVectorLayer (area_layer_file, "Areas", "ogr") 5 line_layer = QgsVectorLayer (line_layer_file, "Lines") ) 6 7 sahə = [] line_layer.getFeatures -də line_feature üçün 8 (): 9 sorğu = QgsFeatureRequest (QgsExpression (10 area_feature.geometry (). Kəsişir (line_feature.geometry ()) 11)) 12 sahə [[in for area for area area_layer.getFeatures (istək)]

Bu şəkil mənim sualımı göstərir: qırmızı xətt sarı seçilmiş sahələri kəsir.


alanlar = [] line_layer.getFeatures () -də line_feature üçün: cands = area_layer.getFeatures (QgsFeatureRequest (). setFilterRect (line_feature.geometry (). alan_özellik.geometriya ()): sahələr

QGIS 3'ü yuxarıdakı cavab olaraq edə bilərsiniz, ancaq QgsFeatureRequest () olmadan.

alanlar = [] line_layer.getFeatures'deki line_feature üçün (): area_layer.getFeatures'deki area_feature üçün (): line_feature.geometry (). seçin (sahələri)


Videoya baxın: QGIS Python PyQGIS - Calculate Field Values Field Calculator (Oktyabr 2021).