使用OpenGL绘制 shapefile文件 完成最基本的gis操作
来源:互联网 发布:qt多线程网络编程 编辑:程序博客网 时间:2024/06/06 02:53
主要内容概述
(视频教程已经发布:http://edu.csdn.net/course/detail/3422)
(http://edu.csdn.net/course/detail/3420)
1.解析shapefile(.shp)文件。‘
2.将经纬度数据按照墨卡托投进行投影(调用proj.4库)完成。
3.将数据用OpenGL的方式进行绘制。
上述3方面只是完成初步的绘制,对于要完成一个复杂的地理信息系统还有很大的差距,
下面介绍我设计的简单的地理信息框架(用于交流,进步)。先上个图,根据图来说更加易懂。
其中地图框架中包含多个物理地理图层,是真实存在的图层,所有在该图层下的数据都会被绘制到图层上(即一张图片)。
物理图层中包含了多个逻辑图层(Layer),是为了方便应用层使用而设计的逻辑图层,用于将地图要素进行分类管理
使用,最后Layer中包含的是真正的地图要素数据,是真正绘制使用的数据。
在实际的应用中,可以把影像数据作为一个物理图层,将矢量要素数据作为一个物理图层,最后将两个图层合成输出。
当然在实际应用中,我增加了一个图层,即实时绘制层,即将距离测量,面积测量,角度测量等做在该层,这样在地图刷新的
时候重新绘制的数据不多,提高程序的性能。
先上一个图,我目前做的简单的gis框架(只是满足我目前的需求,主要的特点就是速度快)。如下图所示。
初步的完成上面的框架设计后,我得到了上面的结果,在这想与大家分享的是OpenGL在处理多边形填充区域的时候比较麻烦,我将矢量线和面做了两个
逻辑图层,这样做可以选择显示线和面两中模式。在完成这个效果图的时候为了追求效率,遇到最大的问题是绘制文字,众所周知OpenGL没有绘制文字
的功能,需要自己做,其用到了我前面的随笔,有兴趣的可以自行参考。
为了做标会功能,在做界面花费了我很多精力,为了让软件具备跨平台的目的(可以再Andriod手机平台上用),界面我采用OpenGL封装了一个轻量级的
界面库(这个很不值得),网上也有很多开源的界面库,比如Mygui,FastUI,CEGUI等,我都有用过,要不在效率上满足不了我的要求,要么占用较大的内存,
最后自己只有自己写了,上图。
编辑各种常用的图形界面如下:
最后,我增加了一个曲线模板,即可以把比较好的样式保存成模板,想用的使用直接拖出来就直接可以应用。
如下所示。
- 使用OpenGL绘制 shapefile文件 完成最基本的gis操作
- 使用OpenGL绘制 shapefile文件 完成最基本的gis操作
- 使用GeoTools读取和绘制Shapefile格式 -- (学习GIS【1】)
- opengl绘制完成后转储BMP文件
- 小马看GIS--Shapefile文件解析(一)
- 小马看GIS--Shapefile文件解析(二)
- 浅谈gis中ShapeFile文件结构
- Shapefile文件组成,Shapefile文件的修复
- Shapefile 文件的局限性
- C++实现shapefile文件的读写和基本功能的操作
- 使用GeoTools读取和绘制Shapefile格式
- OpenGL绘制基本图形单元的方法
- OpenGL学习笔记(四):了解OpenGL、OpenGL的操作模式、特性和基本使用步骤
- opengl基本绘图绘制
- OPENGL基本图形绘制
- 【GIS】Shapefile文件格式详解
- 使用gdal的ogr创建shapefile文件(c++)
- PostgreSQL、PostGIS安装使用和Shapefile文件的导入
- caffe-prototxt网络在线显示
- Linux中的五个数据段
- 谷歌增强现实技术ARCore
- STM32之NVIC函数一览
- 关于U盘在装系统之后之后容量变小且不能格式化的解决方法
- 使用OpenGL绘制 shapefile文件 完成最基本的gis操作
- 面试题(6)
- NumPy手册
- Android 微信支付的坑
- 随便做着玩-实现删除选择ListView的条目
- 学会git玩转github,结尾有惊喜!有惊喜!有惊喜!
- Attempt to invoke virtual method 'int java.lang.Integer.intValue()
- 使用delete删除指针
- 安装Python库(以numpy为例):如何打开whl格式文件