课程目标
通过课程的学习,
掌握如何用OpenGL绘制地图瓦片数据,
漫游等功能,
并结合OpenGL提出了多种优化方式,
对每种优化方式的优缺点和应用场合作深入讲解.
最后实践,访问Google Map地图实现地图数据的在线浏览.
适用人群
OpenGL从业者,地理信息从业者,学生
课程简介
OpenGL绘制图片
FreeImage加载图片
墨卡托投影
瓦片的金字塔模型
FramebufferObject
地图的移动和缩放
优化,采用屏幕瓦片绘制
优化,采用ImageBuffer优化
优化,采用多线程优化
优化,地图操作优化
模拟,生成全球瓦片(debug)
在线浏览Google地图
课程代码、测试地图数据找助教老师获取。
课程详情请看第一节课程介绍,
课程包含但不限于以下知识点:
01.课程介绍,相关理论学习
02.OpenGL实现纹理的绘制
03.FreeImage的使用,加载外部图片
04.墨卡托投影学习
05.金字塔模型的介绍-瓦片计算
06.瓦片数据的绘制
07.地图漫游-鼠标拖拽实现地图平移
08.地图漫游-鼠标滚轮实现地图的缩放
09.地图漫游-鼠标滚轮实现地图的"定点"缩放
10.窗口消息的处理,实现自动计算窗口范围
11.地图漫游的优化
12.采用FrameBufferObjet绘制地图
13.引入Cache(缓冲),提速访问瓦片效率
14.采用大纹理优化,减少OpenGL纹理对象的分配
15.ImageBuffer优化,去除向显卡中传递的"脏"数据
16.ImageBuffer与Cache结合
17.地图滚动处理,实现"无缝"漫游
18.产生全球瓦片数据,为项目开发调试保驾护航
19.采用多线程加载瓦片数据的初步思路
20.多线程任务系统的设计
21.多线程加载瓦片的实现方法1
22.多线程加载瓦片的实现方法2
23.多线程加载数据结合cache优化性能和效果
24.关于无瓦片数据或者瓦片丢失的处理方法总结和实现
25.优化代码
26.MFC 对话框中显示地图
27.MFC View中显示地图
28.QT窗口中显示地图
29.libcurl介绍,封装http访问类
30.实现在线访问Google Map
本课程在OpenGL系列课程中的定位在下表中:
1 | C++ 程序设计 | 1-编程语言-入门 |
2 | C++ 中搭建Lua脚本系统开发框架 | 2-编程语言-脚本系统 |
3 | OpenGL ES2.0 基础精讲 | 3-移动图形1-入门 |
4 | OpenGL ES2.0 中级篇 | 3-移动图形2-进阶 |
5 | OpenGL 实战编码设计 | 3-桌面图形1-入门 |
6 | OpenGL 全面解析OpenGL-Shader语言 | 3-桌面图形2-进阶 |
7 | OpenGL 3D图形学理论-实现OpenGL精简内核 | 3-桌面图形3-提升 |
8 | WebGL 基础篇-坚如磐石 | 3-网页图形1-入门 |
9 | 软件实战-Google地图下载器制作 | 4-实战项目-GIS |
10 | 软件实战-Google地图瓦片的绘制,漫游 | 4-实战项目-GIS |
11 | 软件实战-实现shapefile的绘制 | 4-实战项目-GIS |
12 | 三维引擎开发-图形数理基础 | 4-实战项目-三维引擎 |
13 | 三维引擎开发-摄像机操作 | 4-实战项目-三维引擎 |
14 | 三维引擎开发-GUI设计与实现 | 4-实战项目-三维引擎 |
15 | 三维引擎开发-场景编辑器 | 4-实战项目-三维引擎 |
16 | 三维引擎开发-渲染 | 4-实战项目-三维引擎 |
17 | 软件实战-实现RGB到YUV420加速转换输出 | 4-实战项目-视频 |
18 | 软件实战-实现视频播放(FFMpeg) | 4-实战项目-视频 |
19 | 游戏实战-太空大战 | 5-实战项目-游戏 |
20 | 游戏实战-血腥大地-第一季(建立场景) | 5-实战项目-游戏1 |
21 | 游戏实战-血腥大地-第二季(资源破解与管理) | 5-实战项目-游戏2 |
22 | 游戏实战-血腥大地-第三季(怪物模型制作) | 5-实战项目-游戏3 |
每个课程的详细介绍,可以在套餐课程列表中,
点击对应课程,观看【第一节-课程介绍】了解。
套餐链接
https://ke.qq.com/course/package/14996