1 votos

¿Conseguir el mapa de la India en el lienzo de QGIS usando PyQGIS?

¿Puedo obtener la extensión del mapa de la India en un solo clic a partir de un mosaico de OSM en el lienzo utilizando PyQgis?

Este es mi fragmento de código.

canvas = iface.mapCanvas()
urlWithParams = 'type=xyz&url=https://a.tile.openstreetmap.org/{z}/{x}/{y}.png&crs=EPSG3857'
rlayer = QgsRasterLayer(urlWithParams, 'MapMyIndia', 'wms')
QgsProject.instance().addMapLayer(rlayer)
rect = QgsRectangle(7589389.42, 889589.56, 10842803.55, 4231219.37)
canvas.setExtent(rect)
canvas.update()

2voto

Mue Puntos 2469

Podría utilizar el siguiente ejemplo que pone su código en una función y luego se crea un botón en una barra de herramientas que está conectado a la función. Puedes probar esto usando la consola de Python:

def loadMap():
    if not 'MapMyIndia' in [layer.name() for layer in QgsProject.instance().mapLayers().values()]:
        urlWithParams = 'type=xyz&url=https://a.tile.openstreetmap.org/{z}/{x}/{y}.png&crs=EPSG3857'
        rlayer = QgsRasterLayer(urlWithParams, 'MapMyIndia', 'wms')
        QgsProject.instance().addMapLayer(rlayer)
    rlayer = QgsProject.instance().mapLayersByName('MapMyIndia')[0]
    canvas = iface.mapCanvas()
    rect = QgsRectangle(7589389.42, 889589.56, 10842803.55, 4231219.37)
    canvas.setExtent(rect)
    canvas.update()
    rlayer.triggerRepaint()

action = QAction(QIcon(""), "Load India", iface.mainWindow())
iface.addToolBarIcon(action)
action.triggered.connect(loadMap)
# Or to connect to a button on your plugin
#self.dlg.pushButton.clicked.connect(self.loadMap)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X