当前位置: 首页 > news >正文

离线地图显示

瓦片地图是一种将大地图切割成若干个小的矩形图块(瓦片)的技术,每个瓦片代表地图的一部分,通常具有固定的大小(256x256像素)。瓦片地图技术广泛应用于网络地图和地理信息系统(GIS)中,主要目的是提升地图的加载速度和用户体验,在没有网络的情况下实现定位。

瓦片地图下载

使用离线地图下载工具(管理员身份运行)可以进行瓦片下载。
在这里插入图片描述
x、y、z表示了瓦片所位置。
在这里插入图片描述
建议最小从3开始,最大到18即可,右侧的是选择图片保存的目录结构:
在这里插入图片描述
选择路径后开始下载:
在这里插入图片描述
下载完成后再下载路径中按缩放等级保存了瓦片图片:
在这里插入图片描述
图片按层级保存,对应关系如下:
在这里插入图片描述

坐标计算办法

每个瓦片的像素是256*256像素:
在这里插入图片描述
接下来最关键的是了解如何将像素点转换为经纬度坐标点,具体转换算法如下:

#define M_PI		3.14159265358979323846/************************************************************************
限制n在min和max之间
************************************************************************/
double clip(double n, double min, double max)
{n = n<min?min:n;n = n>max?max:n;return n;
}/***********************************************************************
px:x坐标像素点
py:y坐标像素点
level:缩放等级
lon:计算的经度结果
lat:计算的纬度结果
墨卡托投影:y * 2 * M_PI:将归一化的 y 值映射到 [-π, π] 范围。qExp(-y * 2 * M_PI):计算 e 的指数。  Qt数学函数qAtan(...):计算反正切值。		    Qt数学函数最后通过 90 - (360 * ... / M_PI) 将结果转换为纬度值
***********************************************************************/
void pixelXYToLonLat(int px, int py, int level, double *lon, double *lat)
{unsigned int size;unsigned int w = 256;size = w << level; // 缩放等级*256double x = (clip(px, 0, size - 1) / size) - 0.5;  // px归一到(-0.5~0.5)double y = 0.5 - (clip(py, 0, size - 1) / size);  // py归一到(-0.5~0.5)*lon = x * 360;*lat = 90 - (360 * qAtan(qExp(-y * 2 * M_PI)) / M_PI);
}

以这张图为例:
在这里插入图片描述
在这里插入图片描述
使用高德平台抓取的左上角坐标大致是(104.06,30.67):
在这里插入图片描述
抓取的右下角坐标大致是(104.11,30.64):在这里插入图片描述
也就是说这张图大致经度范围是(104.06,104.11),纬度范围大致是(30.67,30.64)。使用如上算法在Qt中验证一下:
在这里插入图片描述
可以看到计算结果基本一致,要在图片中标记点位的话就相当于将GPS模块反馈的经纬度按坐标位置换算成像素点后在图片上画点即可。


http://www.mrgr.cn/news/93231.html

相关文章:

  • Redis数据结构——list
  • Redis数据结构——set
  • Java多线程与高并发专题——ConcurrentHashMap 在 Java7 和 8 有何不同?
  • C++————引用
  • 递归入手三维动态规划
  • Idea配置注释模板
  • 用CMake编译glfw进行OpenGL配置,在Visual Studio上运行
  • 图解MOE大模型的7个核心问题并探讨DeepSeekMoE的专家机制创新
  • 5年前问题的答案,如何造统计信息
  • Mybatis中的设计模式
  • 安装微软最新原版系统,配置好系统驱动并保留OOBE全新体验
  • JAVA入门——反射
  • 《Operating System Concepts》阅读笔记:p188-p199
  • 蓝桥杯C组真题——巧克力
  • Linux软件包管理
  • HTTP 黑科技
  • uniapp:小程序将base64图片字符串保存到手机相册
  • 免费分享一个软件SKUA-GOCAD-2022版本
  • C++11中atomic
  • 大模型在呼吸衰竭预测及围手术期方案制定中的应用研究