コード例 #1
0
ファイル: edit_action.py プロジェクト: vadimshenikov/qmap
    def findFeatures(self, point):
        # If we don't have a any layers to forms mappings yet just exit.
        if not qmap.QMap.layerformmap:
            return

        layer = qmap.QMap.layerformmap.iterkeys().next()

        searchRadius = QgsTolerance.toleranceInMapUnits(10, layer, self.canvas.mapRenderer(), QgsTolerance.Pixels)

        rect = QgsRectangle()
        rect.setXMinimum(point.x() - searchRadius)
        rect.setXMaximum(point.x() + searchRadius)
        rect.setYMinimum(point.y() - searchRadius)
        rect.setYMaximum(point.y() + searchRadius)

        featuresToForms = {}
        for layer, form in qmap.QMap.layerformmap.iteritems():
            layer.select(layer.pendingAllAttributesList(), rect, True, True)
            for feature in layer:
                featuresToForms[feature] = (form, layer)

        if len(featuresToForms) == 1:
            form, layer = featuresToForms.itervalues().next()
            feature = featuresToForms.iterkeys().next()
            self.openForm(form, feature, layer)
        elif len(featuresToForms) > 0:
            listUi = ListFeaturesForm()
            listUi.loadFeatureList(featuresToForms)
            listUi.openFeatureForm.connect(self.openForm)
            listUi.exec_()
コード例 #2
0
ファイル: plugin.py プロジェクト: vpicavet/Roam
 def showFeatureSelection(self, features):
     listUi = ListFeaturesForm(self.mainwindow)
     listUi.loadFeatureList(features)
     listUi.openFeatureForm.connect(self.openForm)
     listUi.exec_()