查看: 438|回复: 7

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

[复制链接]

222

主题

241

帖子

685

积分

高级飞友

Rank: 4

积分
685
飞币
442
注册时间
2017-7-6
发表于 2023-1-16 17:25:26 | 显示全部楼层 |阅读模式
引言
QGIS是一款开源的GIS地理化工具,QGIS可以通过内嵌的Python空间进行脚本编写和二次开发。本期为PyQGIS系列内容的第一期,请大家点击关注期待后续的内容。
本文使用的QGIS版本为 QGIS 3.16.7

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

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

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

PyQGIS入门「1、瓦片地图加载」-2.jpg

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

PyQGIS入门「1、瓦片地图加载」-3.jpg



二、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
PyQGIS入门「1、瓦片地图加载」-4.jpg

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、效果演示

PyQGIS入门「1、瓦片地图加载」-5.jpg



<hr>

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

25

主题

650

帖子

1280

积分

金牌飞友

Rank: 6Rank: 6

积分
1280
飞币
626
注册时间
2017-9-10
发表于 2023-1-16 17:40:20 | 显示全部楼层
转发了

26

主题

614

帖子

1213

积分

金牌飞友

Rank: 6Rank: 6

积分
1213
飞币
595
注册时间
2017-8-28
发表于 2023-1-16 17:45:40 | 显示全部楼层
转发了

33

主题

645

帖子

1271

积分

金牌飞友

Rank: 6Rank: 6

积分
1271
飞币
622
注册时间
2017-9-11
发表于 2023-1-16 17:52:52 | 显示全部楼层
666

23

主题

645

帖子

1281

积分

金牌飞友

Rank: 6Rank: 6

积分
1281
飞币
625
注册时间
2017-8-19
发表于 2023-1-16 18:04:22 | 显示全部楼层
转发了

32

主题

639

帖子

1278

积分

金牌飞友

Rank: 6Rank: 6

积分
1278
飞币
622
注册时间
2017-8-24
发表于 2023-1-16 18:13:03 | 显示全部楼层
转发了

26

主题

675

帖子

1324

积分

金牌飞友

Rank: 6Rank: 6

积分
1324
飞币
647
注册时间
2017-8-23
发表于 2023-1-16 18:26:59 | 显示全部楼层
转发了

34

主题

653

帖子

1304

积分

金牌飞友

Rank: 6Rank: 6

积分
1304
飞币
649
注册时间
2017-8-18
发表于 2023-1-16 18:37:15 | 显示全部楼层
转发了
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表