z1413 发表于 2023-1-16 17:25:26

PyQGIS入门「1、瓦片地图加载」

“ 引言 ”
QGIS是一款开源的GIS地理化工具,QGIS可以通过内嵌的Python空间进行脚本编写和二次开发。本期为PyQGIS系列内容的第一期,请大家点击关注期待后续的内容。
本文使用的QGIS版本为 QGIS 3.16.7


一、手动加载瓦片地图(OpenStreetMap)

1、QGIS默认配置了OpenStreetMap,配置方法如下:


2、双击XYZ Tiles中的OpenStreetMap即可加载OpenStreetMap:




二、Python加载瓦片地图(OpenStreetMap)

1、使用的函数:
iface.addRasterLayer(map_uri,map_name, "wms")注:
map_url:图层地址(对应图层的源url)
map_name:图层名称
"wms":通常使用Web 地图服务 (WMS) 协议,默认填写”wms”
2、OpenSreetMap源url分析
1)图层右键查看属性
得到URL为OpenSreetMap的地址,源为当前图层的源url。
URL:https://tile.openstreetmap.org/{z}/{x}/{y}.png源:
crs=EPSG:3857&format&type=xyz&url=https://tile.openstreetmap.org/%7Bz%7D/%7Bx%7D/%7By%7D.png&zmax=19&zmin=0

2)源url构造解读
将源url解码:
crs=EPSG:3857&format&type=xyz&url=https://tile.openstreetmap.org/{z}/{x}/{y}.png&zmax=19&zmin=0可以看到参数url即为OpenSreetMap的地址。也就是说,我们将URL编码后即可得到该图层的源url。
3、实战演示
1)QGIS的Python控制台
QGIS提供了一个集成的python控制台,可以从插件→python控制台菜单中打开。启动QGIS的python控制台时,会自动执行以下语句,因此使用图层加载函数时无需额外导入qgis.core。
from qgis.core import *import qgis.utils2)OpenSreetMap url编码
from urllib import parseurl = 'tile.openstreetmap.org/{z}/{x}/{y}.png'encode_url = parse.quote(url)3)生成瓦片地图图层
map_url ="type=xyz&url=https://" + encode_urlmap_layer =iface.addRasterLayer(map_url, "OpenStreetMap", "wms")4、效果演示




<hr>

如果你觉得文章还不错,请 点赞、分享、关注、转发 ,PyQGIS 将是一期系列内容,下期内容很快更新。

yutianning 发表于 2023-1-16 17:40:20

转发了

nanshi00 发表于 2023-1-16 17:45:40

转发了

loveav 发表于 2023-1-16 17:52:52

666

nczhangyun 发表于 2023-1-16 18:04:22

转发了

航拍 发表于 2023-1-16 18:13:03

转发了

xqylzx 发表于 2023-1-16 18:26:59

转发了

13619860410 发表于 2023-1-16 18:37:15

转发了
页: [1]
查看完整版本: PyQGIS入门「1、瓦片地图加载」