Qt地图(无人机、无人车使用)

        我们在开发无人机(或无人车)的过程时,往往需要用到地图显示无人机的实时轨迹,或是创建航点给无人机指定飞行地点。使用Qt加载地图并不是件容易的事,需要专业的地图相关的知识,如地图切片、网络加载、数据库缓存等,而我们开发无人机项目,并不想花大精力研究地图,而是想直接使用地图开发无人机相关的功能,方便无人机的开发。好在网络上有人分享了一个从OpenPilot地面站移植来的地图代码,是使用Qt编写的,专为无人机设计,功能非常强大。

        在该地图中,能够实现多种地图类型的切换、增加删除无人机、绘制无人机飞行轨迹、创建/删除航点、创建/删除圆等,更具体地还可以改变无人机图表、航点航线的种类/颜色/线粗、无人机空速/地速设置、无人机航向、无人机信息等细节,必要是自己修改代码实现自己想要的功能。在该地图中,像Google地图、Google中国地图在国内网络都访问不了,好在bing地图可以正常访问,加载速度还可以,足以满足无人机的学习研究使用。

        对于该代码的版权与使用说明,代码注释中写得很清楚了,这里复制下来给大家看下:

/**
 ******************************************************************************
 *
 * @file       pointlatlng.h
 * @author     The OpenPilot Team, http://www.openpilot.org Copyright (C) 2012.
 * @brief
 * @see        The GNU Public License (GPL) Version 3
 * @defgroup   OPMapWidget
 * @{
 *
 *****************************************************************************/
/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
 * for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */

        我在该代码的基础上,实现了一些功能,如实时显示鼠标位置经纬度、地图缩放等级、鼠标双击创建航点、删除航点、改变航点坐标、切换地图类型、模拟飞行演示,开发所使用环境如下:

        ① Qt 5.14.1(包含对应的Qt Creator);Qt5的其它版本理论上都支持;

        ②  windows系统,其它系统未测试过,理论上桌面系统都通用。

        下面展示地图界面与使用效果:

扫描二维码关注公众号,回复: 15228844 查看本文章

        在windows系统中,使用windeployqt命令打包程序时,可能有些库打包不全,需要手动添加。比如说,在地图运行过程中,不能够缓存地图,可能是sql的动态链接库没有找到,或者在程序编译后运行,Qt Creator的应用输出出现警告信息QSqlDatabase: QSQLITE driver not loaded,也是找不到sql的动态链接库的问题,解决方法是在Qt安装路径下找到sqldrivers文件夹,复制到我们生成的exe应用程序的文件夹中,地图缓存功能即可正常使用。

        代码我上传到CSDN资源中,地址:https://download.csdn.net/download/weixin_47488212/87750246

        更具体的功能大家可以参照代码学习,喜欢的就给个赞吧!

猜你喜欢

转载自blog.csdn.net/weixin_47488212/article/details/130477203