相信很多使用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实现离线缓存地图相关推荐

  1. mysql带外_【技术分享】MySQL带外攻击(含演示视频)

    Brexit 预估稿费:180RMB 投稿方式:发送邮件至 linwei#360.cn ,或登陆网页版在线投稿 概述 关于MSSQL和所有的这一切都只在Windows环境下的MySQL中有可能实现. ...

  2. C++界面开发框架Qt新手入门指南 - 如何创建Qt Quick UI项目

    Qt技术交流群:166830288      欢迎一起进群讨论 Qt Quick UI Prototype项目可用于测试或制作用户界面原型,或者用于为QML编辑设置单独的项目.您不能将它们用于应用程序 ...

  3. 技术分享 | 一文带你了解测试流程体系

    软件测试是软件质量保证的关键步骤.越早发现软件中存在的问题,修复问题的成本就越低,软件质量也就越高,软件发布后的维护费用越低. 为了能更好的保障软件质量,在软件测试的实践中,慢慢形成了一些流程用来达到 ...

  4. 新手入门PS人像磨皮教程

    大家好我是微风,一个爱设计爱生活的平面设计师,每天学一点PS技巧,今天给大家分享新手入门PS人像磨皮教程,大家每天跟着微风学一点,看完文章之后自己进行实操,长时间积累下来自己作图肯定没问题. 微风今天 ...

  5. qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...

    主要问题: 一开始用的是在线的,都没有什么问题,自定义图片均可以显示,可是后面试了一下离线百度地图,在qt中运行打开.html文件和在电脑上面直接双击打开此文件显示是有差别的,在qt生成的程序中,地图 ...

  6. AI考拉技术分享会—手把手教你入门UI 自动化测试 Appium

    2019独角兽企业重金招聘Python工程师标准>>> AI考拉日常技术分享会,前有众多前后端以及android大神分享,这次测试老司机Eric也放招,手把手带devs入门UI自动化 ...

  7. 短视频运营:如何做自媒体?新手入门的详细操作分享

    经常听到这样一些言论,目前自媒体已经过时了,普通人根本挣不到钱,真相是否像别人说的一样呢? 其实,在我们身边经常会看到一些网红大V,一个月轻轻松松月入百万.月入千万的人已经大有人在,而这些网红往往都是 ...

  8. 电脑黑客技术新手入门,自学黑客技术入门教程

    最近经常有小伙伴联系我说要学黑客技术,当然目的各种各样,有的就是觉得黑客很酷,单纯想要学技术,还有的就是想找人帮忙攻击赌博网站或者监听别人的电话(以女朋友的电话居多),对于想要单纯学技术的朋友我很欢迎 ...

  9. DockOne技术分享:十个问题带你了解Windows Docker

    DockOne技术分享:十个问题带你了解Windows Docker [编者的话]微软在5月份Build大会上的官方说法,说是这个夏天会放出Windows Server Container的测试版.也 ...

最新文章

  1. 回溯算法——算法总结(四)
  2. linux 安装 MySQL
  3. numpy矩阵乘法的解惑
  4. VS2012 无法打开文件“kernel32.lib”问题的解决办法
  5. 关于数据预处理的一些想法
  6. 不喜欢 merge 分叉,那就用 rebase 吧
  7. 数据结构:(7)数据结构小结1
  8. Android应用开发—Application
  9. 发布个小软件给大伙玩玩
  10. java合并docx_java实现多个docx文档合并(基于docx4j)
  11. win10 日文输入法的安装与使用
  12. 【原创】《华杉讲透《孙子兵法》》阅读有感(三)
  13. python数据挖掘14讲_python/pandas数据挖掘(十四)-groupby,聚合,分组级运算
  14. 关于深度学习人工智能模型的探讨(一)(1)
  15. Bookmark Sentry – 检查重复、删除死链书签 Chrome扩展
  16. MSDC 4.3 接口规范(3)
  17. Even-Odd Increments
  18. tex liv模板_微软向所有人开放Liv​​e Mesh
  19. [oeasy]python0072_修改字体前景颜色_foreground_color_font
  20. 学习一下windows系统的的目录结构,对比一下Linux系统的目录结构

热门文章

  1. Android流媒体开发之-直播自定义分类
  2. 15 服务容错可视化解决方案HyStrix Dashboard
  3. scl enable devtoolset-7踩坑
  4. 问卷星/问卷管理系统的设计与实现,附源码+开发环境【优质毕设】
  5. springboot+hibernate+jpa+SessionFactory项目搭建
  6. /u 反斜杠u 编码总结
  7. 金融NLP需求落地实践总结——使用T5-Pegasus做一句话摘要
  8. 2022-10-31如何将自己训练的yolo模型转为tensorrt相关的模型(.trt or .engine)
  9. muduo源码分析之TcpServer模块
  10. html文本框样式大全,HTML文本框样式(示例代码)