レイヤのすべてのフィーチャのジオメトリとQGISの特定のフィーチャのジオメトリを比較したいと思います。私はoutoutとして、この私が取得していますNoneを実行していない場合はすべてのレイヤのフィーチャを比較する方法
class geometry_checker(base_prechecker):
def __init__(self):
self.target_layer_name = "layer_1"
def do_geom_check(self, layer, layers):
layer_name = self.get_layer_name(layer)
if layer_name == self.target_layer_name:
iter = layer.getFeatures()
for feat in iter:
geom = feat.geometry()
e = geom.type()
iter1 = layers.getFeatures()
for fea in iter1:
geom_a = fea.geometry()
f = geom.type()
if e == f:
return True
else:
return False
q = geometry_checker()
lay = iface.activeLayer()
layers = QgsMapLayerRegistry.instance().mapLayers()
print q.do_geom_check(lay)
: はここに私のコードです。私が本当に望むのは、ジオメトリタイプが同じであればTrueを返します。そうでなければFalseです。 誰かが助けてくれる
'layer_name == self.target_layer_name'がFalseの場合、返されません。 – e4c5
うん、訂正しました。そして、コードは 'dict'オブジェクトが 'getFeatures'属性を持たない返す –
これは自明です。あるクラスのインスタンスであるかのように辞書を扱っています – e4c5