如何比较所有层的特征

How to compare the features of all the layers

我想将图层的所有要素的几何形状与 QGIS 中特定要素的几何形状进行比较。 这是我的代码:

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)

如果我 运行 这个我得到 None 作为输出。我真正想要的是,如果几何类型相同,它应该 return True else False。 有人请帮助我

版本 10 中有一个内置工具可以在任何许可级别为您执行此操作。它称为功能比较工具。这听起来正是您所描述的想要的。 http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001700000004000000