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)
示例#3
0
 def addLayer(self, layerType):
     self.__setMapSrsGoogle()
     layer = OpenlayersLayer(self.iface, self.__coordRSGoogle, self.olLayerTypeRegistry)
     layer.setLayerName(layerType.name)
     layer.setLayerType(layerType)
     if layer.isValid():
         if QGis.QGIS_VERSION_INT >= 10900:
             QgsMapLayerRegistry.instance().addMapLayers([layer])
         else:
             QgsMapLayerRegistry.instance().addMapLayer(layer)
     # last added layer is new reference
     self.setReferenceLayer(layer)