Je souhaite comparer la géométrie de toutes les entités d'une couche à la géométrie d'une entité particulière dans QGIS. Voici mon code:Comment comparer les caractéristiques de toutes les couches
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)
Si je cours ce que je reçois comme outout Aucun. Ce que je veux vraiment, c'est que si le type de géométrie est le même, il devrait retourner True sinon False. Quelqu'un m'aide m'aider
lorsque 'layer_name == self.target_layer_name' est Faux, il retournera – e4c5
Oui, je l'ai corrigé. Et le code renvoie l'objet 'dict' n'a aucun attribut 'getFeatures' –
Ce qui est explicite. vous traitez un dictionnaire comme s'il s'agissait d'une instance de classe – e4c5