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 容器内的两个地图控件。
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 容器内的两个地图控件。
相关文章推荐
- qt嵌入式版本源码编译的各种问题
- Qt creater设置成黑色主题
- Qt 和 Boost关于信号和槽的对比说明
- Qt5中使用lambda表达式
- 自学QT之传递控件指针判断是哪个控件被操作
- 关于Qt信号/槽的参数类型
- pyqt5-为QListWidget添加右键菜单
- 浅谈Qt代理
- qt 状态机弹跳效果
- 【大话QT之七】QT序列化操作
- 【Qt5】【Markdown】用到哪些文档就翻译过来
- Qt Creator添加/查找槽错误
- MQTT协议详解
- 对象封装属性的真正源头
- SPOJ QTREE 树链剖分
- QT全平台设置图标,全平台静态编译 good
- Qt学习:线程间共享数据(使用信号槽传递数据,必须提前使用qRegisterMetaType来注册参数的类型)
- [Magento SQL] 获取订单 总金额,总Qty,并排除 指定客户Email的订单
- Visual Studio 2015编译安装配置QT5.5.1(含QTWEBKIT)
- Qt浅谈之三十九圆形进度条