Пример #1
0
 def getProjectVariable(self, key):
     current_project = core.QgsProject().instance()
     chiper_text = core.QgsExpressionContextUtils.projectScope(
         current_project).variable(key)
     value = base64.b64decode(
         str.encode(chiper_text)).decode('utf-8') if chiper_text else ''
     return value
Пример #2
0
 def exportToMemoryLayer(self, route, srid, valueMaps):
     vectorLyr = core.QgsVectorLayer(
         'LineString?crs=epsg:{0}{1}'.format(
             srid, self.getMemoryLayerFieldsUrl()), 'rota', "memory")
     vl = core.QgsProject().instance().addMapLayer(vectorLyr)
     vl.startEditing()
     feat = core.QgsFeature(vl.fields())
     pavingValueMap = [
         valueMap for valueMap in valueMaps
         if valueMap['attribute'] == 'revestimento'
     ]
     pavingValueMap = pavingValueMap[0][
         'valueMap'] if pavingValueMap else {}
     getPavingValue = lambda code, valueMap=pavingValueMap: list(
         pavingValueMap.keys())[list(pavingValueMap.values()).index(code)]
     for step in route:
         step['covering'] = getPavingValue(
             step['covering']).split('(')[0].strip()
         feat.setAttribute('id', step['seq'])
         feat.setAttribute('nome', step['name'])
         feat.setAttribute('sigla', step['initials'])
         feat.setAttribute('revestimento', step['covering'])
         feat.setAttribute('faixas', step['tracks'])
         feat.setAttribute('velocidade', step['velocity'])
         feat.setAttribute('observacao', step['note'])
         feat.setGeometry(QgsGeometry.fromWkt(step['wkt']))
         vl.addFeature(feat)
     vl.commitChanges()
     return vl
Пример #3
0
 def createTheme(self):
     layers = iface.layerTreeView().selectedLayers()
     themeCollection = core.QgsProject.instance().mapThemeCollection()
     themeName = "{0}{1}".format(
         layers[0].name() if len(layers) == 1 else 'tema_misto',
         '' if len(themeCollection.mapThemes()) == 0 else len(
             themeCollection.mapThemes()))
     root = core.QgsProject().instance().layerTreeRoot().clone()
     root.clear()
     [root.insertLayer(idx, layer) for idx, layer in enumerate(layers)]
     model = core.QgsLayerTreeModel(root)
     themeCollection.insert(
         themeName,
         core.QgsMapThemeCollection.createThemeFromCurrentState(
             root, model))
     return themeName
Пример #4
0
    def run(self, attributes, relationshipTablaName):
        foundRelationshipTable = [
            layer
            for layer in core.QgsProject().instance().mapLayers().values()
            if layer.dataProvider().uri().table() == relationshipTablaName
        ]
        if not foundRelationshipTable:
            return (False, 'Tabela de relacionamento não encontrada')
        layer = foundRelationshipTable[0]

        feature = self.hasRelationship(attributes, layer)
        if feature:
            self.delRelationship(feature, layer)
        else:
            self.addRelationship(attributes, layer)
        iface.mapCanvas().refresh()
        return (True, '')
Пример #5
0
 def setProjectVariable(self, key, value):
     chiper_text = base64.b64encode(value.encode('utf-8'))
     core.QgsExpressionContextUtils.setProjectVariable(
         core.QgsProject().instance(), key, chiper_text.decode('utf-8'))
Пример #6
0
    # Get full file paths
    in_paths = [os.path.join(a.RSDS_folder, f) for f in in_files]

    # Get names of layers
    in_names = [os.path.splitext(f)[0] for f in in_files]

    # Launch QGIS application
    qgs = qc.QgsApplication([], True)
    qgs.initQgis()

    # WARNING: This is to silence the ol 'Sum of Photometric type-related... (etc)' error
    # Should be included with caution, since it can silence other errors
    PushErrorHandler('CPLQuietErrorHandler')

    # Create new project
    project = qc.QgsProject()

    # Read map
    project.read(a.qgs_file)

    # To access layers and groups at root
    root = project.layerTreeRoot()

    # Get group (add if needed)
    group = root.findGroup(a.group_name)
    if group is None:
        group = root.addGroup(a.group_name)

    # Add layer and groups
    for i in range(len(in_names)):