Qqis中采用栅格工具生成XYZ瓦片(目录)简介

news2024/11/15 21:23:36

目录

前言

一、Qgis的相关功能

1、数据准备

2、将两个xyz图源添加到图层

 二、Qgis栅格工具生成

1、生成xyz图块工具在哪里

 2、生成xyz图块怎么用

3、下载结果

 4、Leaflet加载离线瓦块

 总结


前言

        在上一篇博客中,介绍了一种在Qgis中基于QMetaTiles插件进行xyz瓦片离线下载的技术实现方式,原文地址:在Qgis中使用QMetaTiles插件进行XYZ瓦片离线下载方法。如果不是特别要求,这种技术实现的方案是可以满足瓦片离线化的基本要求。不知道有没有亲自实践的小伙伴,如果有的话,不知道在实践过程中,您有没有发现QMetaTiles插件的一些问题。

        这里将个人在使用QMetaTiles插件进行瓦片离线化的时候,遇到的问题列一下,欢迎有一样问题的小伙伴在评论区留个言,知道怎么解决的更希望可以告知于我。是否在参数的设置上面出现了问题。

  1. 采用QMetaTiles插件,在大范围瓦片下载过程中,极有可能部分瓦片不能正确下载。导致在使用Leaflet浏览时,给用户的感觉是图片错误。
  2. 使用QMetaTiles下载瓦片时,必须要提前安装插件。QMetaTiles下载的瓦片如下图所示:

         在采用上述的方案时,还需要在Qgis软件环境中安装QMetaTiles插件,也是一件不太方便的事情。作为喜欢偷懒的我们,有没有一种更快捷的方式,既不用安装插件,也能下载地图瓦片,同时能将两个不同的图层进行合并成一个瓦片呢?

        答案是肯定的。本文将重点介绍在Qgis中直接利用现有功能就能完成XYZ瓦片的下载方式,详细介绍如何进行软件操作,然后使用Leaflet对下载的瓦片进行综合展示。

一、Qgis的相关功能

1、数据准备

        我们这里的需求是需要使用Qgis将星图地球的3-4级地图影像和标注图层进行统一合成下载。因此在Qqis中将星图地球的底图影像和标注影像添加到窗口中。具体操作步骤如下:

         新建xyz连接,首先添加地图影像地址到Qgis当中,连接信息如下:

         具体的连接如下所示:

https://tiles2.geovisearth.com/base/v1/img/{z}/{x}/{y}?secretId=H7ILfZkmmyCjwSYt5doCpsABO6A&clientId=caa9e56a-615b-4cdf-e566-29e5784eb31d&expireTime=1687048132&sign=2e7a293a7c0642117d1e45ce2b4483d3cd183223361a51c755b75a4d04aa41f5

        同样的方式把标注图层也添加到Qgis当中来,添加页面如下所示:

         链接地址如下:

https://tiles3.geovisearth.com/base/v1/cia/{z}/{x}/{y}?secretId=H7ILfZkmmyCjwSYt5doCpsABO6A&clientId=caa9e56a-615b-4cdf-e566-29e5784eb31d&expireTime=1687048132&sign=2e7a293a7c0642117d1e45ce2b4483d3cd183223361a51c755b75a4d04aa41f5

2、将两个xyz图源添加到图层

        将上面两个xyz图源添加到图层窗口中,这里需要注意一下,添加的时候要注意一下顺序。通常情况下,影像图层是放在最下面的作为底图进行展示的,因此在xyz图源处双击数据源即可完成图层添加。在底图之上,叠加标记图层,让底图看起来更丰富一些。具体效果如下所示:

         如果在图层添加的过程中,图层的顺序添加错了,也可以在图层窗口中进行调整。鼠标右键点击图层,比如移到底层即可完成当前图层移到最底层。

 二、Qgis栅格工具生成

        跟Arcgis一样,Qgis同样也有很丰富的工具箱支持,而且都是开箱即用的。帮助用户在进行空间数据分析时,专注数据的展示。本文讲述的XYZ瓦片生成的基础也是使用Qgis中的栅格工具,具体的工具是【生成xyz图块(目录)】。就是支持图层中的瓦片以xyz的形式输出到指定的目录中。

1、生成xyz图块工具在哪里

        在Qgis软件的工作窗口中,一般处理工具箱的位置位于操作界面中的右侧。在这里集成了许多有用的工具,包括今天的主角栅格工具。

 2、生成xyz图块怎么用

        鼠标双击生成xyz图块(目录)链接,在这个链接的上面还有一个工具也是生成xyz图块的,只不过它是以MBTiles的方式进行存储,MBTiles这种格式下次可以专门来说一次。本文不进行展开叙述。点开之后出现如下参数设置页面:

         需要设置的参数信息如下描述:

序号参数说明
1extend图层的下载范围,可以从当前图层进行选择
2minzoom下载的最小层级
3maxzoom下载的最大层级
4DPI96,分辨率
5背景颜色默认透明
6tile format瓦片格式,默认png,可以有jpg
7tile质量当瓦片格式为jpg时,可以设置图片质量
8图块宽度256
9图块高度256
10瓦块输出目录具体保存瓦块的目录
11加载示例生成leaflet加载示例程序的位置

        以上参数设置完成后,点击运行按钮完成工具的运行。可以在界面中看到实时的进度和命令的执行参数跟踪情况,日志情况等等。

         在记录tab页中可以看到瓦片的下载情况。摘录一部分展示如下:

QGIS版本:3.16.0-Hannover
QGIS代码版本:43b64b13f3
Qt版本:5.11.2
GDAL版本:3.1.4
GEOS版本:3.8.1-CAPI-1.13.3
PROJ版本:Rel. 6.3.2, May 1st, 2020
处理算法...
正在启动“生成 XYZ 图块(目录)”算法…
参数输入:
{ 'BACKGROUND_COLOR' : QColor(0, 0, 0, 0), 'DPI' : 96, 'EXTENT' : '-20037508.342799999,20037508.342799999,-20037508.342799999,20037508.342799999 [EPSG:3857]', 'METATILESIZE' : 4, 'OUTPUT_DIRECTORY' : 'D:\\wzh_test\\xyzdownload617', 'OUTPUT_HTML' : 'D:/wzh_test/xyzdownload617/index.html', 'QUALITY' : 75, 'TILE_FORMAT' : 0, 'TILE_HEIGHT' : 256, 'TILE_WIDTH' : 256, 'TMS_CONVENTION' : False, 'ZOOM_MAX' : 4, 'ZOOM_MIN' : 3 }

Using 4 CPU Threads:
Generating tiles for zoom level: 3
Generating tiles for zoom level: 4
执行完成,花了13.51 秒
结果:
{'OUTPUT_DIRECTORY': 'D:\\wzh_test\\xyzdownload617',
'OUTPUT_HTML': 'D:/wzh_test/xyzdownload617/index.html'}

载入结果图层
算法“生成 XYZ 图块(目录)”执行已完成
已生成该算法 HTML 格式输出结果。
请打开结果对话框进行检查。

        这里详细记录了整个瓦片生成的过程,输入参数,输出结果,执行耗时等,非常直观的展示了蒸锅调用过程。

3、下载结果

        在刚才设置的瓦片生成目录中,可以看到两个层级的瓦片以及一个index.html文件。能看到以下的瓦片信息说明工具执行成功。

 4、Leaflet加载离线瓦块

        Leaflet加载瓦块的具体技术方式在此不再赘述,这里直接贴出具体的代码。

<!DOCTYPE html>
<html>
<head>
  <title>Leaflet Preview</title>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css"
   integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ=="
   crossorigin=""/>
  <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js"
   integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og=="
   crossorigin=""></script>
  <style type="text/css">
    body {
       margin: 0;
       padding: 0;
    }
    html, body, #map{
       width: 100%;
       height: 100%;
    }
  </style>
</head>
<body>
  <div id="map"></div>
  <script>
      var map = L.map('map').setView([1.4210854715202004e-14, 8.526512829121202e-14], 3.5);
      L.tileLayer('file:///D%3A/wzh_test/xyzdownload617/{z}/{x}/{y}.png', {
        minZoom: 3,
        maxZoom: 4,
        tms: false,
        attribution: 'Generated by TilesXYZ'
      }).addTo(map);
  </script>
</body>
</html>

        温馨提示:上述代码中,瓦片的发布是以File协议发布的,实际项目中是需要发布成http的,技术上只要采用nginx或者apache等中间件进行静态资源发布即可。最终加载效果如下:

 总结

        以上就是本文的主要内容,本文将重点介绍在Qgis中直接利用现有功能就能完成XYZ瓦片的下载方式,详细介绍如何进行软件操作,然后使用Leaflet对下载的瓦片进行综合展示。行文仓促,如有不当,欢迎评论区留言批评指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux---环境变量、$符号、自行设置环境变量

1. 环境变量 环境变量是操作系统&#xff08;Windows、Linux、Mac&#xff09;在运行的时候&#xff0c;记录的一些关键性信息&#xff0c;用以辅 助系统运行。 在Linux系统中执行&#xff1a;env命令即可查看当前系统中记录的环境变量 环境变量是一种Key-Value型结构&…

chatgpt赋能python:Python如何选取CSV某几列数据

Python如何选取CSV某几列数据 在数据处理过程中&#xff0c;CSV是一种非常常见的数据文件类型。CSV文件中的数据由逗号分隔的值&#xff08;Comma-Separated Values&#xff09;组成。处理CSV数据的任务之一是从CSV文件中选择特定的列数据&#xff0c;以进行数据分析或处理。在…

shell脚本基础

目录 一、概述 二、shell (一)shell命令解释环境 &#xff08;二&#xff09;类型 &#xff08;三&#xff09;查看系统中支持的shell&#xff1a;cat /etc/shells &#xff08;四&#xff09;查看系统默认shell&#xff1a; echo $SHELL 三、变量 &#xff08;一&…

HTMLCSS Day04 CSS盒模型

文章目录 1.盒子组成盒子属性&#xff08; Box properties&#xff09;marginborderpaddingwidth & height盒子一般指的是块元素&#xff0c;盒子是我们布局的重要机制。一个盒子应该由外边距、边框、内边距、内容组成。 - width & height- 边框属性1.什么是边框?2.边…

TiDB Contributor 资料汇总

作者&#xff1a; Billmay表妹 原文来源&#xff1a; https://tidb.net/blog/cf95cdb7 开源社区建设 TiDB 社区是由 TiDB 生态中的开发者、用户、合作伙伴一起建立的分享、学习平台。TiDB 线上社区汇聚了 29149 位 TiDB 资深用户&#xff08;注册用户数&#xff09;&#x…

将一个一维数组前段和后端的0元素去除的numpy.trim_zeros()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 除去一维数组第一个非零元素之前的零 除去一维数组最后一个非零元素之后的零 numpy.trim_zeros() 选择题 关于以下代码说法错误的一项是? import numpy as np a np.array([0,0,1,0,2,0,0])…

前端Vue分享菜单按钮弹框、微博分享、QQ分享、微信好友、朋友圈

前端Vue分享菜单按钮弹框、微博分享、QQ分享、微信好友、朋友圈 &#xff0c; 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id13085 效果图如下&#xff1a; #### 使用方法 使用方法 <!-- 分享 ref: 设置一个唯一ref contentHeight&#xff…

记一次fastjson事件应急响应

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 事件背景介绍02 事件分析过程03 事件分析结果04 安全加固建议 01 事件背景介绍 某内部应急演练中&#xff0c;安全部门收到通知&#xff0c;称公司内部资产被入侵&#xff0c;且可能已经开始内网横…

YOLO V2原理总结

yolo v2在yolo v1的基础上添加或更换了一些内容&#xff0c;一定程度上结局了yolo v1的一些问题。 ✨1 概括 做出的改变有8个&#xff1a; 添加Batch Normalization层高分辨率主干网络anchor box机制全卷积网络结构新的主干网络K-means聚类先验框使用更高分辨率特征多尺度训练…

(十)异步-委托异步调用(4)

一、委托异步执行 当委托对象被调用时&#xff0c;它调用其调用列表中包含的方法。这是同步完成的。 如果委托对象在调用列表中只有一个方法&#xff08;引用方法&#xff09;&#xff0c;它就可以异步执行这个方法。委托类有两个方法&#xff0c;叫作 BeginInvoke 和 EndInv…

【计算机网络】进程崩溃或网络中断后,TCP 连接还存在吗?

【计算机网络】进程崩溃或网络中断后&#xff0c;TCP 连接还存在吗&#xff1f; 参考资料&#xff1a; TCP 连接&#xff0c;一端断电和进程崩溃有什么区别&#xff1f; 拔掉网线后&#xff0c; 原本的 TCP 连接还存在吗&#xff1f; TCP/IP卷一:94—TCP保活机制 TCP Keepaliv…

记一次gitlab应急响应

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 事件背景介绍02 事件分析过程03 事件分析结果04 安全加固建议 01 事件背景介绍 某内部应急演练中&#xff0c;态势感知平台上出现gitlab RCE漏洞攻击成功告警&#xff0c;现需根据流量情况进行安全…

013、数据库管理之连接管理

连接管理 TiDB的连接特性连接TiDB 数据库开发接口支持 实验案例 TiDB的连接特性 无状态MySQL协议支持 100% 兼容MySQL 5.7协议支持MySQL 5.7常用功能与语法 MySQL 语法支持的限制&#xff08;不支持的功能特性&#xff09; 存储过程触发器外键函数其它 连接TiDB 数据库 使…

记一次shiro应急响应

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 事件背景介绍02 事件分析过程03 事件分析结果04 安全加固建议 01 事件背景介绍 某内部应急演练中&#xff0c;安全部门监测到WAF上存在shiro攻击成功告警信息&#xff0c;现需根据流量情况进行安全…

Vue中的表单上传与文件预览

Vue中的表单上传与文件预览 在Web应用程序中&#xff0c;文件上传和预览是非常常见的功能。在Vue中&#xff0c;我们可以使用axios和FormData来实现表单上传&#xff0c;使用FileReader来实现文件预览。在本文中&#xff0c;我们将介绍如何在Vue中实现表单上传和文件预览功能。…

[阿里云使用k8s技术部署微服务]

1.1 检查CPU/内存/网络设置 对虚拟机的要求(必须): CPU:最少2核 内存:master >4G&#xff0c;node >3G 网络:NAT模式 操作系统版本: Docker 要求 CentOS 系统的内核版本必须高于 3.10。 如果内核版本为3.10&#xff0c;则发行编号最好能升级到1127&#xff0c; 即:3.10.0…

1000*B. Keep it Beautiful

input 3 9 3 7 7 9 2 4 6 3 4 5 1 1 1 1 1 5 3 2 1 2 3output 111110010 11111 11011 解析&#xff1a; 如果数据不小于前一个数据&#xff0c;则一直为美丽序列&#xff1b; 当碰到第一个小于末尾的数据时&#xff0c;1. 如果他比首数据大&#xff0c;则不符题意。2. 小于等…

【ARMv8 SIMD和浮点指令编程】NEON 移动指令——精通 MOV?

移动指令主要涉及 MOV 和 MVN&#xff0c;它们分别是移动和求反移动。如果你认为仅仅两条指令&#xff0c;还是太小看设计者了&#xff01; 1 MOV (element) 将向量元素移动到另一个向量元素。该指令将源 SIMD&FP 寄存器的向量元素复制到目标 SIMD&FP 寄存器的指定向…

短视频seo系统源码私有化部署分享

短视频seo矩阵系统源码部署需要以下步骤&#xff1a; 确定系统环境要求&#xff1a;账号矩阵系统需要服务器环境支持PHP和MySQL数据库&#xff0c;因此需要确保服务器环境符合要求&#xff0c;并安装好相应的软件。例如&#xff0c;可以使用XAMPP或WAMP等软件包来快速安装PHP和…

中国唯一 一家Linux 基金会金牌会员 落户阿里云

导读2 月 20 日&#xff0c;全球知名非营利性组织 Linux 基金会宣布&#xff0c;阿里云正式成为 Linux 基金会金牌会员。阿里云表示将持续加大对开源项目的支持&#xff0c;并发挥自己的力量。 2 月 20 日&#xff0c;全球知名非营利性组织 Linux 基金会宣布&#xff0c;阿里云…