如何比较所有图层的功能

时间:2017-05-24 05:17:07

标签: python geometry qgis

我想在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)

如果我这样做,我就会得到无。我真正想要的是如果几何类型相同,它应该返回True else False。 有人请帮帮我

1 个答案:

答案 0 :(得分:0)

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