您的位置:首页 > 编程语言 > Qt开发

Qt 插件综合编程-基于插件的OpenStreetMap瓦片查看器客户端(0)-引子

2016-01-16 22:57 597 查看
OpenStreetMap一般是使用Web服务发布瓦片和矢量数据的。本系列博文主要演示如何使用Qt 搭建一个简单的OpenStreetMap瓦片客户端,实现以下功能:

1、OpenStreetMap 服务器瓦片的自动下载与本地缓存。

2、基于Qt插件的接口开发技术,实现高度可扩展的图层。提供两个图层插件范例。第一个插件演示了使用底层QPainter实现绘图、量测功能;第二个插件演示了使用QGraphicsScene系列模型-视图架构在可变比例尺地图上进行静态、动态标注的技术。

3、基于事件、呼叫的图层插件间通信技术。插件可以发布各自的功能,并与主框架、其他插件交互。一个典型的例子是标图插件可以从量测插件获得选取的区域信息,而标图插件支持从外部传入绘图指令完成所有界面上支持的功能。

4、基于Active-Qt的封装技术。这种技术使得 C#, MFC, VB应用可以方便的嵌入OpenStreetMap 地图,并获得事件、命令其动作。

相关的代码可以从https://github.com/goldenhawking/mercator.qtviewer.git直接克隆。

原理部分将在下一节开始逐一介绍。

------------------

编译注意事项:

1、在Qt-5.3.2下测试通过,支持 Visual C++ 2010 express 以上编译器, MinGW32 4.8 以上(编译器开关 -std=c++11开启)。

2、在Ubuntu下需要C++11支持,且ActiveX 特性不可用。

3、在Windows下,需要使用管理员权限执行编译,才能自动注册控件。

4、脱离QtCreator环境后,控件因为缺少DLL依赖项,无法正确运行。可通过依赖工具拷贝库文件到发布包,或者直接把控件拷贝到Qt的安装文件夹/BIN文件夹下,而后以管理员身份、一般公户身份运行 regsvr32.exe 注册。

5、中文翻译包使用qt 语言家发布到与可执行文件同路径即可。

下图是发布包里包含的文件(vc2010编译器,opengl=desktop条件下)



下图是ActiveX 容器内的两个地图控件。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: