def addLayer(self, layerType, xyzUrl=None, displayName=None): if layerType is None: thunderforest_api_key = QSettings().value( "qgis-cloud-plugin/thunderforestApiKey") google_api_key = QSettings().value( "Plugin-OpenLayers/googleMapsApiKey") if "thunderforest" in xyzUrl and thunderforest_api_key: xyzUrl = xyzUrl + "?apikey=%s" % thunderforest_api_key elif "google" in xyzUrl and google_api_key: xyzUrl = xyzUrl + "?key=%s" % google_api_key layer = QgsRasterLayer('type=xyz' + '&url=' + xyzUrl, displayName, 'wms') else: layer = OpenlayersLayer(self.iface, self._olLayerTypeRegistry) layer.setName(layerType.displayName) layer.setLayerType(layerType) if not layer.isValid(): return coordRefSys = QgsCoordinateReferenceSystem() coordRefSys.createFromOgcWmsCrs("EPSG:3857") success = self.setMapCrs(coordRefSys) if success: QgsProject.instance().addMapLayer(layer, False) legendRootGroup = self.iface.layerTreeView().layerTreeModel( ).rootGroup() legendRootGroup.insertLayer(len(legendRootGroup.children()), layer) # last added layer is new reference self.setReferenceLayer(layer)
def addLayer(self, layerType): layer = OpenlayersLayer(self.iface, self._olLayerTypeRegistry) layer.setLayerName(layerType.displayName) layer.setLayerType(layerType) if layer.isValid(): coordRefSys = layerType.coordRefSys(self.canvasCrs()) self.setMapCrs(coordRefSys) QgsMapLayerRegistry.instance().addMapLayer(layer) # last added layer is new reference self.setReferenceLayer(layer)