技术分享 | 新手入门-带你使用Qt实现离线缓存地图
相信很多使用Qt做界面开发的相关的人员都会想在自己得交互界面中使用地图,虽然百度、高德地图得功能都非常完善,但是使用Qt调用起来却有些不方便,并且离线地图更是需要一系列瓦片才能实现。这时就可以用到Qt中得QtLocation模块了,由Qt5.4发布技术预览版,到Qt5.6基本成熟。但很多同志如果不搞地图应用,可能用了很久的Qt都不知道有这个模块。QtLocation依赖于QtPositioning模块,提供定位机制、地图和导航技术、位置搜索等功能的QML和C++的API。目前而言,使用QtLocation实现地图得案例有轻量级的谷歌地图源插件GoogleMaps和重量级的地面站软件QGroundControl。
操作步骤:
1.在qmake当中在.pro文件中添加:
QT += positioning location
2.如果是cmake那么在CMakeList.txt中添加如下内容:
find_package(Qt5 …… Quick)
set(……Qt5::Quick)
3.首先我们需要加载QtLocation模块,添加下列语句到qml文件当中
import QtPositioning 5.15
import QtLocation 5.15
因为QtLocation QML模块依赖于上QtPositioning QML模块。因此,每个导入QtLocation模块的应用程序也必须始终导入QtPositioning模块。
4.继续完善qml文件
import QtQuick 2.0 import QtLocation 5.3 import QtPositioning 5.0 Item { Map { id: item_map anchors.fill: parent // anchors.topMargin: 20 plugin: Plugin { locales: "zh-CN" name: "esri" } activeMapType: supportedMapTypes[1] center: QtPositioning.coordinate(30.67, 104.04) zoomLevel: 17 maximumZoomLevel: 19 minimumZoomLevel: 1 color: "green"
} }
5.如果程序是qt_ros交互,即cmake编译,如果遇到报错:
module "QtPositioning" is not installed
那么可以在终端使用运行下列命令来解决
sudo apt-get install qml-module-qtpositioning
6.将qml显示出来有两种方式, 一种以QWidget,另外一种以QQuickView显示。 使用QWidget即使用QQuickWidget控件实现,这种方式交互非常单一不是非常方便。如果使用QQuickView方式,那么qml与C++的交互方式就比较友好,相互调用也十分方便,这两种使用网上都能找到方式,这里就不详细介绍使用方式了。
总结: 经过了上述的操作,真实地理地图应该都显示出来了,这种方式显示地图的方式也十分方便快捷。当然这只是最简单的显示,没有任何交互,在Qt的官方文档中关于这个模块还有着非常丰富的API,可以通过这些API实现更多有趣的功能。
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。 阿木实验室致力于为机器人研发提供开源软硬件工具和课程服务,让研发更高效!
技术分享 | 新手入门-带你使用Qt实现离线缓存地图相关推荐
- mysql带外_【技术分享】MySQL带外攻击(含演示视频)
Brexit 预估稿费:180RMB 投稿方式:发送邮件至 linwei#360.cn ,或登陆网页版在线投稿 概述 关于MSSQL和所有的这一切都只在Windows环境下的MySQL中有可能实现. ...
- C++界面开发框架Qt新手入门指南 - 如何创建Qt Quick UI项目
Qt技术交流群:166830288 欢迎一起进群讨论 Qt Quick UI Prototype项目可用于测试或制作用户界面原型,或者用于为QML编辑设置单独的项目.您不能将它们用于应用程序 ...
- 技术分享 | 一文带你了解测试流程体系
软件测试是软件质量保证的关键步骤.越早发现软件中存在的问题,修复问题的成本就越低,软件质量也就越高,软件发布后的维护费用越低. 为了能更好的保障软件质量,在软件测试的实践中,慢慢形成了一些流程用来达到 ...
- 新手入门PS人像磨皮教程
大家好我是微风,一个爱设计爱生活的平面设计师,每天学一点PS技巧,今天给大家分享新手入门PS人像磨皮教程,大家每天跟着微风学一点,看完文章之后自己进行实操,长时间积累下来自己作图肯定没问题. 微风今天 ...
- qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...
主要问题: 一开始用的是在线的,都没有什么问题,自定义图片均可以显示,可是后面试了一下离线百度地图,在qt中运行打开.html文件和在电脑上面直接双击打开此文件显示是有差别的,在qt生成的程序中,地图 ...
- AI考拉技术分享会—手把手教你入门UI 自动化测试 Appium
2019独角兽企业重金招聘Python工程师标准>>> AI考拉日常技术分享会,前有众多前后端以及android大神分享,这次测试老司机Eric也放招,手把手带devs入门UI自动化 ...
- 短视频运营:如何做自媒体?新手入门的详细操作分享
经常听到这样一些言论,目前自媒体已经过时了,普通人根本挣不到钱,真相是否像别人说的一样呢? 其实,在我们身边经常会看到一些网红大V,一个月轻轻松松月入百万.月入千万的人已经大有人在,而这些网红往往都是 ...
- 电脑黑客技术新手入门,自学黑客技术入门教程
最近经常有小伙伴联系我说要学黑客技术,当然目的各种各样,有的就是觉得黑客很酷,单纯想要学技术,还有的就是想找人帮忙攻击赌博网站或者监听别人的电话(以女朋友的电话居多),对于想要单纯学技术的朋友我很欢迎 ...
- DockOne技术分享:十个问题带你了解Windows Docker
DockOne技术分享:十个问题带你了解Windows Docker [编者的话]微软在5月份Build大会上的官方说法,说是这个夏天会放出Windows Server Container的测试版.也 ...
最新文章
- 回溯算法——算法总结(四)
- linux 安装 MySQL
- numpy矩阵乘法的解惑
- VS2012 无法打开文件“kernel32.lib”问题的解决办法
- 关于数据预处理的一些想法
- 不喜欢 merge 分叉,那就用 rebase 吧
- 数据结构:(7)数据结构小结1
- Android应用开发—Application
- 发布个小软件给大伙玩玩
- java合并docx_java实现多个docx文档合并(基于docx4j)
- win10 日文输入法的安装与使用
- 【原创】《华杉讲透《孙子兵法》》阅读有感(三)
- python数据挖掘14讲_python/pandas数据挖掘(十四)-groupby,聚合,分组级运算
- 关于深度学习人工智能模型的探讨(一)(1)
- Bookmark Sentry – 检查重复、删除死链书签 Chrome扩展
- MSDC 4.3 接口规范(3)
- Even-Odd Increments
- tex liv模板_微软向所有人开放Liv​​e Mesh
- [oeasy]python0072_修改字体前景颜色_foreground_color_font
- 学习一下windows系统的的目录结构,对比一下Linux系统的目录结构
热门文章
- Android流媒体开发之-直播自定义分类
- 15 服务容错可视化解决方案HyStrix Dashboard
- scl enable devtoolset-7踩坑
- 问卷星/问卷管理系统的设计与实现,附源码+开发环境【优质毕设】
- springboot+hibernate+jpa+SessionFactory项目搭建
- /u 反斜杠u 编码总结
- 金融NLP需求落地实践总结——使用T5-Pegasus做一句话摘要
- 2022-10-31如何将自己训练的yolo模型转为tensorrt相关的模型(.trt or .engine)
- muduo源码分析之TcpServer模块
- html文本框样式大全,HTML文本框样式(示例代码)