如何在QGIS的Python代码中获取谷歌底图?

2024-04-28 14:11:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为不同的用户创建一个python插件,它具有每个人在QGIS中需要使用和处理的层。在

我可以使用以下代码从Geoserver添加光栅:

        wmsTicketDSM= QgsRasterLayer('contextualWMSLegend=0&crs=EPSG:27700&dpiMode=7&featureCount=10&format=image/png&layers=Ticket_DSM&password=XXXXXXXXXXXX&styles=&url=http://63.12.21.231:8080/geoserver/exchange_maps/wms&username=admin', 'Ticket_DSM', 'wms')
        if not wmsTicketDSM.isValid():
            print "Layer wmsTicketDSM failed to load!"
        else:
            print "Raster Layer wmsTicketDSM loaded!"
        QgsMapLayerRegistry.instance().addMapLayer(wmsTicketDSM,False)

现在我需要添加基础地图。如何在python上添加Google卫星地图?在


Tags: 代码用户插件layer光栅地图geoserverticket
1条回答
网友
1楼 · 发布于 2024-04-28 14:11:37

谷歌地图可以用作Qgis中的基础地图,将其作为TMS(平铺地图服务)加载。从QGIS 2.18开始,Lutra增加了对TMS的本地支持。在

import requests
service_url = "https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}"
service_uri = "type=xyz&zmin=0&zmax=21&url="+requests.utils.quote(service_url)
tms_layer = core.QgsRasterLayer(service_uri, "Google Hybrid", "wms")

其中lyrs=y为混合地图,lyrs=s为卫星地图,lyrs=m为路线图。在

注意,uri的url参数必须是编码的百分比代码

QGIS以前的版本可以通过使用TileLayerPluginMinoru Akagi来支持,它公开了所需的方法:

^{pr2}$

对于Google basemaps,将正确的“attribution”行和url行替换为以下内容:

"https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}"

相关问题 更多 >