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 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)