def readXml(self, node):
        element = node.toElement()
        qDebug('ReadXML CartoDB Plugin Layer: ' +
               str(element.namedItem('customproperties').nodeName()))

        cartoName = ''
        tableName = ''
        props = element.namedItem('customproperties').childNodes()
        for i in range(0, props.count()):
            prop = props.item(i).toElement()
            if prop.nodeName() == 'property':
                if prop.attribute('key') == 'cartoName':
                    cartoName = prop.attribute('value')
                elif prop.attribute('key') == 'tableName':
                    tableName = prop.attribute('value')

        qDebug('tableName: ' + tableName)
        qDebug('cartoName: ' + cartoName)

        if cartoName != '':
            apiKey = self.settings.value('/CartoDBPlugin/%s/api' % cartoName)
            qDebug('api: ' + apiKey)
            self.cartodbLayer = CartoDBLayer(self.iface, tableName, cartoName,
                                             apiKey)
            self.createCB(self)
        return True
Example #2
0
 def addLayer(fileName, tableName):
     newLayer = CartoDBLayer(self.iface,
                             tableName,
                             dlg.currentUser,
                             dlg.currentApiKey,
                             dlg.currentUser,
                             None,
                             spatiaLite=fileName,
                             multiuser=dlg.currentMultiuser)
     QgsMapLayerRegistry.instance().addMapLayer(newLayer)
     self.layers.append(newLayer)
class CartoDBPluginLayer(QgsPluginLayer):
    LAYER_TYPE = "cartodb"

    def __init__(self, iface, createCB):
        QgsPluginLayer.__init__(self, CartoDBPluginLayer.LAYER_TYPE,
                                "CartoDB Layer")
        self.settings = QSettings()
        self.cartodbLayer = None
        self.iface = iface
        self.createCB = createCB
        self.setValid(True)

    def readXml(self, node):
        element = node.toElement()
        qDebug('ReadXML CartoDB Plugin Layer: ' +
               str(element.namedItem('customproperties').nodeName()))

        cartoName = ''
        tableName = ''
        props = element.namedItem('customproperties').childNodes()
        for i in range(0, props.count()):
            prop = props.item(i).toElement()
            if prop.nodeName() == 'property':
                if prop.attribute('key') == 'cartoName':
                    cartoName = prop.attribute('value')
                elif prop.attribute('key') == 'tableName':
                    tableName = prop.attribute('value')

        qDebug('tableName: ' + tableName)
        qDebug('cartoName: ' + cartoName)

        if cartoName != '':
            apiKey = self.settings.value('/CartoDBPlugin/%s/api' % cartoName)
            qDebug('api: ' + apiKey)
            self.cartodbLayer = CartoDBLayer(self.iface, tableName, cartoName,
                                             apiKey)
            self.createCB(self)
        return True

    def writeXml(self, node, doc):
        qDebug('WriteXML CartoDB Plugin Layer: ' + str(node))
        return True

    def draw(self, rendererContext):
        return self.cartodbLayer.draw(rendererContext)
class CartoDBPluginLayer(QgsPluginLayer):
    LAYER_TYPE = "cartodb"

    def __init__(self, iface, createCB):
        QgsPluginLayer.__init__(self, CartoDBPluginLayer.LAYER_TYPE, "CartoDB Layer")
        self.settings = QSettings()
        self.cartodbLayer = None;
        self.iface = iface
        self.createCB = createCB
        self.setValid(True)

    def readXml(self, node):
        element = node.toElement()
        qDebug('ReadXML CartoDB Plugin Layer: ' + str(element.namedItem('customproperties').nodeName()))

        cartoName = ''
        tableName = ''
        props = element.namedItem('customproperties').childNodes()
        for i in range(0, props.count()):
            prop = props.item(i).toElement()
            if prop.nodeName() == 'property':
                if prop.attribute('key') == 'cartoName':
                    cartoName = prop.attribute('value')
                elif prop.attribute('key') == 'tableName':
                    tableName = prop.attribute('value')

        qDebug('tableName: ' + tableName)
        qDebug('cartoName: ' + cartoName)

        if cartoName != '':
            apiKey = self.settings.value('/CartoDBPlugin/%s/api' % cartoName)
            qDebug('api: ' + apiKey)
            self.cartodbLayer = CartoDBLayer(self.iface, tableName, cartoName, apiKey)
            self.createCB(self)
        return True

    def writeXml(self, node, doc):
        qDebug('WriteXML CartoDB Plugin Layer: ' + str(node))
        return True

    def draw(self, rendererContext):
        return self.cartodbLayer.draw(rendererContext)
    def addSQL(self):
        # Create and show the dialog
        dlg = CartoDBNewSQLDialog(self.toolbar)
        dlg.show()

        result = dlg.exec_()
        if result == 1 and dlg.currentUser is not None and dlg.currentApiKey is not None:
            sql = dlg.getQuery()
            progressMessageBar, progress = self.addLoadingMsg(1)
            QgsMessageLog.logMessage('SQL: ' + sql, 'CartoDB Plugin',
                                     QgsMessageLog.INFO)
            layer = CartoDBLayer(self.iface,
                                 'SQLQuery',
                                 dlg.currentUser,
                                 dlg.currentApiKey,
                                 sql=sql)
            QgsMapLayerRegistry.instance().addMapLayer(layer)
            self.layers.append(layer)
            progress.setValue(1)
            self.iface.mainWindow().statusBar().clearMessage()
            self.iface.messageBar().popWidget(progressMessageBar)
    def readXml(self, node):
        element = node.toElement()
        qDebug('ReadXML CartoDB Plugin Layer: ' + str(element.namedItem('customproperties').nodeName()))

        cartoName = ''
        tableName = ''
        props = element.namedItem('customproperties').childNodes()
        for i in range(0, props.count()):
            prop = props.item(i).toElement()
            if prop.nodeName() == 'property':
                if prop.attribute('key') == 'cartoName':
                    cartoName = prop.attribute('value')
                elif prop.attribute('key') == 'tableName':
                    tableName = prop.attribute('value')

        qDebug('tableName: ' + tableName)
        qDebug('cartoName: ' + cartoName)

        if cartoName != '':
            apiKey = self.settings.value('/CartoDBPlugin/%s/api' % cartoName)
            qDebug('api: ' + apiKey)
            self.cartodbLayer = CartoDBLayer(self.iface, tableName, cartoName, apiKey)
            self.createCB(self)
        return True