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

【小沐学GIS】基于C++绘制二维瓦片地图2D Map(QT、OpenGL、GIS)

🍺三维数字地球系列相关文章如下🍺:
1【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第一期
2【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut、GIS)第二期
3【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut、GIS)第三期
4【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL、GIS)第四期
5【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL、GIS、卫星轨迹)第五期
6【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、GIS、SolarSystem,太阳系模拟)第六期
7【小沐学GIS】基于C++绘制二维瓦片地图2D Map(QT、OpenGL、GIS)
8【小沐学GIS】基于C++OpenSceneGraph(OSG)绘制三维数字地球Earth(7:OpenGL)
9【小沐学GIS】基于C#绘制三维数字地球Earth(10:OpenGL)
10【小沐学GIS】基于Python绘制三维数字地球Earth(11:OpenGL)
11【小沐学GIS】基于Android绘制三维数字地球Earth(12:OpenGL)
12【小沐学GIS】基于WebGL绘制三维数字地球Earth(13:OpenGL)
13【小沐杂货铺】基于Three.JS绘制三维数字地球Earth(GIS 、three.js、WebGL)
14【小沐杂货铺】基于Three.JS绘制三维太阳系Solar System(GIS 、three.js、WebGL)
15【小沐杂货铺】基于Three.JS绘制卫星轨迹Satellite(GIS 、three.js、vue、react)
16【小沐杂货铺】基于Cesium.JS绘制卫星轨迹Satellite(GIS 、Cesium、vue、react)

文章目录

  • 1、瓦片地图
  • 6、运行结果(2d瓦片地图)
    • 6.1 opengl / sdl / boost::asio / c++ (2d,瓦片贴图)
    • 6.2 opengl / curl / glad / glfw / stb / c++ (2d,瓦片贴图)
    • 6.3 opengl / sdl2 / sdl2_image / boost::asio / curl/ c++ (2d,瓦片贴图)
    • 6.4 opengl / sdl2 / sdl2_image / curl / c++ (2d,瓦片贴图)
    • 6.5 opengl / qt5 / glm / cpprest / c++ / 必应影像地图 (2d,瓦片贴图)
    • 6.6 qt5 / c++ / 影像地图 (2d,瓦片贴图)
    • 6.7 qt5 / c++ / OSM / 谷歌 / 必应 (2d,瓦片贴图)
    • 6.8 qt5 / c++ / OSM / 高德 / 天地图 (2d,瓦片贴图)
    • 6.9 qt5 / c++ / 多种地图源切换 (2d,瓦片贴图)
    • 6.10 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)
    • 6.11 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)
    • 6.12 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)
    • 6.13 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)
  • 结语

1、瓦片地图

使用 OpenGL 和 QT5 绘制 2D 瓦片地图:主要思路是通过 OpenGL 进行图形渲染,利用 QT5 提供的网络请求功能获取在线瓦片地图数据,并将其绘制到屏幕上。在代码中,需要创建一个 OpenGL 上下文,设置视口和投影矩阵,然后使用 OpenGL 的绘图函数来绘制地图瓦片。

6、运行结果(2d瓦片地图)

6.1 opengl / sdl / boost::asio / c++ (2d,瓦片贴图)

在这里插入图片描述

6.2 opengl / curl / glad / glfw / stb / c++ (2d,瓦片贴图)

在这里插入图片描述
在这里插入图片描述

6.3 opengl / sdl2 / sdl2_image / boost::asio / curl/ c++ (2d,瓦片贴图)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.4 opengl / sdl2 / sdl2_image / curl / c++ (2d,瓦片贴图)

在这里插入图片描述
在这里插入图片描述

6.5 opengl / qt5 / glm / cpprest / c++ / 必应影像地图 (2d,瓦片贴图)

  • qt vs tool插件下载地址
    https://download.qt.io/archive/vsaddin/2.3.2/

  • 必应地图瓦片原理介绍
    https://learn.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system
    在这里插入图片描述

  • 必应地图瓦片key简介
    https://www.microsoft.com/en-us/maps/bing-maps/create-a-bing-maps-key

    1. 第一步:若没有Microsoft帐号,要先注册一个Microsoft帐号;
    2. 注册完成后,打开这个链接:www.bingmapsportal.com并选“sign in”登录Microsoft帐号;
    3. 在 “My account” 选项中选择 “My Keys”;
    4. 在 “My Keys” 中 “Create Key” ,同时填写您应用程序的相关信息。注意密钥类别选择 “Basic”,应用程序类型填写“Website”,然后点击“Create”;
    5. 生成密钥后,点击“Show key”即可显示密钥,复制下来添加到网站后台的bing地图组件里即可。
      在这里插入图片描述
  • cpprest库地址
    https://github.com/microsoft/cpprestsdk

在这里插入图片描述
在这里插入图片描述

6.6 qt5 / c++ / 影像地图 (2d,瓦片贴图)

QT       += network sql widgets

在这里插入图片描述
在这里插入图片描述

6.7 qt5 / c++ / OSM / 谷歌 / 必应 (2d,瓦片贴图)

在这里插入图片描述

6.8 qt5 / c++ / OSM / 高德 / 天地图 (2d,瓦片贴图)

在这里插入图片描述

6.9 qt5 / c++ / 多种地图源切换 (2d,瓦片贴图)

在这里插入图片描述

6.10 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)

在这里插入图片描述
在这里插入图片描述

6.11 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)

在这里插入图片描述
在这里插入图片描述

6.12 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)

在这里插入图片描述
在这里插入图片描述

6.13 qt5 / c++ / QtNetwork / QtWidgets(2d,瓦片贴图)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上章节所有地球代码,均在VS2017或QT5开发环境编译通过。

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

http://www.xdnf.cn/news/369739.html

相关文章:

  • 二、Hive安装部署详细过程
  • USR-M100采集数据并提交MQTT服务器
  • 为什么tcp不能两次握手
  • 基于C语言的TCP通信测试程序开发指南
  • openstack的网络和vpc网络底层原理有什么区别与联系
  • 人工智能行为分析驱动的反爬虫技术:给用户行为 “画像”
  • VBA将PDF文档内容逐行写入Excel
  • SpringBoot框架名字的由来
  • CentOS 7 修改锁屏时间为永不
  • arXiv2025 | TTRL: Test-Time Reinforcement Learning
  • 数据库中的 Segment、Extent、Page、Row 详解
  • Java 开发者 Linux 学习指南
  • Lingma:云效 MCP 使用
  • Java【网络原理】(5)深入浅出HTTPS:状态码与SSL/TLS加密全解析
  • 【前端】每日一道面试题3:如何实现一个基于CSS Grid的12列自适应布局?
  • 《算法导论(第4版)》阅读笔记:p17-p27
  • 8.2.CICD自动化
  • 一种运动平台扫描雷达超分辨成像视场选择方法——论文阅读
  • 金融学知识笔记
  • MindSpore框架学习项目-ResNet药物分类-模型训练
  • 【RAG-十 一-检索增强技术之迭代增强】
  • 【Linux系统】从零开始构建简易 Shell:从输入处理到命令执行的深度剖析
  • 【金仓数据库征文】金仓数据库KingbaseES: 技术优势与实践指南(包含安装)
  • 基础语法(二)
  • 【基于 LangChain 的异步天气查询3】OpenWeather实现实时天气查询
  • 离线化 Service Worker
  • HTTP、HTTPS、SSH区别以及如何使用ssh-keygen生成密钥对
  • 【C++】红黑树
  • Flink和Spark的选型
  • 从父类到子类:C++ 继承的奇妙旅程(2)