开源飞控地面站 Openpilot GCS (现在的Librepilot GCS)源码分析  (2)地图插件

2023-05-16

(1)OpenPilot项目中有地图显示模块

(2)地图显示模块的插件是:opmap插件,位置是src->plugins->opmap

(3)OPMapGadget空间的settings在配置文件 OpenPilotGCS_config.xml中的:

 

    <OPMapGadget>
      <Google__PCT__20Sat>
        <configInfo>
          <locked>false</locked>
          <version>0.0.0</version>
        </configInfo>
        <data>
          <accessMode>ServerAndCache</accessMode>    //模式:ServerAndCache是指 可以在线也可以使用离线缓存
          <cacheLocation>%%STOREPATH%%mapscache/</cacheLocation>
          <defaultLatitude>0</defaultLatitude>       //默认的经纬度
          <defaultLongitude>0</defaultLongitude>
          <defaultZoom>2</defaultZoom>              //默认的放大倍数
          <mapProvider>GoogleSatellite</mapProvider>  //默认的地图提供者
          <maxUpdateRate>2000</maxUpdateRate>    //最大的更新速率,即地图每秒更新多少次
          <overlayOpacity>1</overlayOpacity>
          <showTileGridLines>false</showTileGridLines>
          <uavSymbol>mapquad.png</uavSymbol>
          <useMemoryCache>true</useMemoryCache>
          <useOpenGL>false</useOpenGL>
        </data>
      </Google__PCT__20Sat>
      <Memory__PCT__20Only>
        <configInfo>
          <locked>false</locked>
          <version>0.0.0</version>
        </configInfo>
        <data>
          <accessMode>CacheOnly</accessMode>
          <cacheLocation>%%STOREPATH%%mapscache/</cacheLocation>
          <defaultLatitude>0</defaultLatitude>
          <defaultLongitude>0</defaultLongitude>
          <defaultZoom>2</defaultZoom>
          <mapProvider>GoogleMap</mapProvider>
          <maxUpdateRate>2000</maxUpdateRate>
          <overlayOpacity>1</overlayOpacity>
          <showTileGridLines>false</showTileGridLines>
          <uavSymbol>airplanepip.png</uavSymbol>
          <useMemoryCache>true</useMemoryCache>
          <useOpenGL>false</useOpenGL>
        </data>
      </Memory__PCT__20Only>
      <default>
        <configInfo>
          <locked>false</locked>
          <version>0.0.0</version>
        </configInfo>
        <data>
          <accessMode>ServerAndCache</accessMode>
          <cacheLocation>%%STOREPATH%%mapscache/</cacheLocation>
          <defaultLatitude>0</defaultLatitude>
          <defaultLongitude>0</defaultLongitude>
          <defaultZoom>2</defaultZoom>
          <mapProvider>GoogleMap</mapProvider>
          <maxUpdateRate>2000</maxUpdateRate>
          <overlayOpacity>1</overlayOpacity>
          <showTileGridLines>false</showTileGridLines>
          <uavSymbol>mapquad.png</uavSymbol>
          <useMemoryCache>true</useMemoryCache>
          <useOpenGL>false</useOpenGL>
        </data>
      </default>
    </OPMapGadget>

 

 

 

 

 

(4)问题:地面站运行之后在有网络的情况下,地图插件无法显示出地图

问题原因:(3)中选择的地图提供者的网址在中国无法被访问.

程序分析:在OpenPilot项目中的src->libs->opmapcontrol->src->core->源文件->OPMaps.cpp

在OPMaps.cpp文件中说明了各种mapprovider对应的网站:

 

            switch (type) {
            case MapType::GoogleMap:
            case MapType::GoogleSatellite:
            case MapType::GoogleLabels:
            case MapType::GoogleTerrain:
            case MapType::GoogleHybrid:
            {
                qheader.setRawHeader("Referrer", "http://maps.google.com/");
            }
            break;

            case MapType::GoogleMapChina:
            case MapType::GoogleSatelliteChina:
            case MapType::GoogleLabelsChina:
            case MapType::GoogleTerrainChina:
            case MapType::GoogleHybridChina:
            {
                qheader.setRawHeader("Referrer", "http://ditu.google.cn/");
            }
            break;

上面数据库使用的GooglrSatellite对应的网站在中国无法使用,所以要使用谷歌地图中国的网站http://ditu.google.cn/,所以数据库中的mapprovider改成:GoogleSatellite程序中的地图就可以正常显示了.
解决方法: 将三中的

<mapProvider>GoogleSatellite</mapProvider>  //默认的地图提供者

 

改为:  

 

<mapProvider>GoogleSatelliteChina</mapProvider>

       地图就可以正常显示了.

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开源飞控地面站 Openpilot GCS (现在的Librepilot GCS)源码分析  (2)地图插件 的相关文章

随机推荐

  • ROS1/ROS2版本代号

    ROS1 ROS2版本代号 鱼香ROS介绍 xff1a 鱼香ROS是由机器人爱好者共同组成的社区 xff0c 欢迎一起参与机器人技术交流 进群加V xff1a fishros2048 文章信息 xff1a 标题 xff1a ROS1 ROS
  • 一键安装失败

    一键安装失败 鱼香ROS介绍 xff1a 鱼香ROS是由机器人爱好者共同组成的社区 xff0c 欢迎一起参与机器人技术交流 进群加V xff1a fishros2048 文章信息 xff1a 标题 xff1a 一键安装失败 原文地址 xff
  • 在ROS 2中使用QT,显示话题内容,详细配置代码

    功能包类型选ament cmake xff0c 核心代码是这两句 xff0c 把spin单独出来 xff0c 不然接收不到话题数据 std thread spin thread listener gt void rclcpp spin li
  • 进程切换-

    实验课之前有一些问题 中断机制 第一个问题 xff1a interrupt的两个状态源头 xff1a 外中断多由随机中断 xff08 异步中断 xff09 造成 xff0c 如鼠标点击 xff0c 键盘输入 xff1b 内终端多由故障终端
  • 前后端分离项目 — 基于SpringSecurity OAuth2.0用户认证

    1 前言 现在的好多项目都是基于APP移动端以及前后端分离的项目 xff0c 之前基于Session的前后端放到一起的项目已经慢慢失宠并淡出我们视线 xff0c 尤其是当基于SpringCloud的微服务架构以及Vue React单页面应用
  • Android Studio com.android.support:percent 导入错误

    看第一行代码 xff08 第二版的 xff09 书 xff0c 讲了一个关于PercentFrameLayout和PercentRelativeLayout的部分 xff0c 书上在build gradle中导入了com android s
  • BS_TYPEMASK 重定义

    问题来源 CButtonST从VC6移植到VS2008的时候 xff0c 会提示下面语句重定义 span class token macro property span class token directive keyword defin
  • Ubuntu安装python

    CentOS 安装 Python3 没什么坑 xff0c 按照步骤一步步来就可以了 但 Ubuntu 安装 Python3 的坑却不少 xff0c 这里总结一下 xff0c 避免以后继续踩坑 我用的是 ubuntu16 04 xff0c 安
  • 【深度学习】Pytorch中cv2的错误 TypeError: Expected Ptr<cv::UMat> for argument ‘img‘

    错误出现的原因应该为数据之间出了冲突 xff0c 需要在某些地方调用 copy 函数 当我查看画框后的原图和旋转后的图片时 xff0c 发现它只是旋转的原图 xff0c 而不是将原图直接拷贝一份再旋转 下面为代码 xff1a import
  • PX4飞控开发——环境配置及编译ubuntu18.04

    PX4飞控学习过程 xff08 随着学习不断更新 xff0c 欢迎讨论 xff09 一 安装时遇到的问题二 添加环境变量及编译三 解決E 无法获得锁 var lib dpkg lock frontend open 11 资源暂时不可用 的問
  • PX4飞控试炼之路

    PX4飞控试炼之路 一 地面站控制台上显示输出 Hello Sky 二 利用飞控计算加法三 飞控按指定频率计数 xff0c 并将计数结果反馈到控制台1 利用while循环实现计数2 利用 96 hrt call every 96 周期回调函
  • 解决电脑wlan被禁用无法再启动的办法.

    快捷键ctrl 43 alt 43 delete打开任务管理器 gt 选择服务 gt 左下角打开服务 gt 找到WLAN AutoConfig右键 gt 选择重新启动 xff0c 然后Ok了
  • 关于虚拟机ubuntu编译程序时报make: warning: Clock skew detected. Your build may be incomplete.问题的解决办法

    关于ubuntu虚拟机编译程序时报make warning Clock skew detected Your build may be incomplete 问题的解决办法 xff1a 我在ubuntu虚拟的arm linux gcc上编译
  • 解决rosbag时间戳未对齐的解决方法

    解决rosbag时间戳未对齐的解决方法 Reference ROS org rosbag Cookbook http wiki ros org rosbag Cookbook rosbag在存储时间时 xff0c 接收消息的时间和生成消息的
  • ROS+python控制小乌龟走方形的实现rospy

    常见的简陋的控制乌龟行走方形的方式很简单 xff0c 例如 xff1a 代码有些地方是测试用的 xff0c 可以不要 usr bin env python from pickle import TRUE import rospy from
  • C++ STL算法

    C 43 43 STL算法 1 非修正序列算法1 1 adjacent find first last 1 2 count first last val 2 修正序列算法2 1 random shuffle first last 2 2 p
  • git子模块的修改和更新操作

    Reference git子模块的修改和更新操作 1 子库与父库 git关于子模块的官方文档链接 xff1a https git scm com book zh v2 Git E5 B7 A5 E5 85 B7 E5 AD 90 E6 A8
  • CMakeLists Option使用简介

    CMakeLists Option使用简介 1 基本格式2 示例3 基本用法4 C程序条件编译5 次项目之间选项的关系 Reference xff1a CMake之Option使用简介 CMake中的option用于控制编译流程 xff0c
  • 四轴一键起飞定高定点悬停伪代码

    四轴飞行器一键起飞定高 xff0c 降落 xff0c 光流定点悬停控制算法伪代码 基于飞控系统的二次开发
  • 开源飞控地面站 Openpilot GCS (现在的Librepilot GCS)源码分析  (2)地图插件

    xff08 xff11 xff09 OpenPilot项目中有地图显示模块 xff08 xff12 xff09 地图显示模块的插件是 xff1a opmap插件 xff0c 位置是src gt plugins gt opmap xff08