QGC(QGroundControl)地面站手把手教你改——高德地图的添加和瓦片地图在线资源


所有的热爱都要不遗余力,真正喜欢它便给它更高的优先级,和更多的时间吧!

关于QGC地面站其它文章请点击这里:     QGC地面站


1. 演示效果

    QGC地面站上地图源不是用不了就是比较旧,谷歌地图呢最好用,但是麻烦,你懂的。这里教你如何添加高德地图,其它地图类似,添加后效果如下:

在这里插入图片描述
其实有时候也加载不出来,最好还是提前下载好离线的。

2. 代码添加

     以下代码,在v4.0.11中添加,源码可点击这里:《win10下新版QGC地面站环境搭建全面攻略(v4.0.x QGroundControl地面站搭建)》

● 修改1:

     在 GenericMapProvider.h 最后加入 GaodeSatMapProvider 高德地图类定义。

//D:\gcs\qgc-src\v4.0.11\qgroundcontrol\src\QtLocationPlugin\GenericMapProvider.h:80
class GaodeSatMapProvider : public MapProvider {
    Q_OBJECT
  public:
    GaodeSatMapProvider(QObject* parent = nullptr)
        : MapProvider(QStringLiteral("webapi.amap.com"), QStringLiteral("jpg"),
                      AVERAGE_TILE_SIZE, QGeoMapType::SatelliteMapDay, parent) {}
	//"webapi.amap.com" 和 "jpg" 似乎不重要,懂地朋友还请赐教
	
    QString _getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) override;

  private:
    const QString _versionBingMaps = QStringLiteral("563");
};

● 修改2:

     在 GenericMapProvider.cpp 最后加入 _getURL() 方法。就是瓦片资源链接,后文再详细介绍。这是最关键的一步,添加不同的地图关键就是添加不同的瓦片资源。

// src\QtLocationPlugin\GenericMapProvider.cpp:79
QString GaodeSatMapProvider::_getURL(const int x, const int y, const int zoom, QNetworkAccessManager* networkManager) {
    Q_UNUSED(networkManager)

      return QStringLiteral("http://webst01.is.autonavi.com/appmaptile?style=6&x=%1&y=%2&z=%3").arg(x).arg(y).arg(zoom);   //高德影像 OK
}

● 修改3:

     实例化你创建的地图类, 可在函数的最后加入。加入后,就已添加到QGC的地图源选择列表中了。

// src\QtLocationPlugin\QGCMapUrlEngine.cpp:36
UrlFactory::UrlFactory() : _timeout(5 * 1000) {
...
    _providersTable["高德 卫星地图"] = new GaodeSatMapProvider(this);
}

3. 瓦片地图在线资源

如要添加其它地图源,修改1修改3中改类名后照抄就行,关键是修改2中需换不同的瓦片地图在线资源,以下亲测有效 。

更新年月:2020年03

3.1 高德地图

参考1:2017版高德地图瓦片分析

//上文的
return QStringLiteral("http://webst01.is.autonavi.com/appmaptile?style=6&x=%1&y=%2&z=%3").arg(x).arg(y).arg(zoom);
//替换 **修改2** 的瓦片资源:
return QStringLiteral("http://wprd01.is.autonavi.com/appmaptile?x=%1&y=%2&z=%3&lang=zh_cn&size=1&scl=1&style=6").arg(x).arg(y).arg(zoom);   

前者是高德的新版地址,后者是老版地址。前者lang可以通过zh_cn设置中文,en设置英文,size基本无作用,scl设置标注还是底图,scl=1代表注记,scl=2代表底图(矢量或者影像),style设置影像和路网,style=6为影像图,style=7为矢量路网,style=8为影像路网。

3.2 天地图

参考2: 天地图 WMTS 服务及规则

return QStringLiteral("http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX=%1&TILEROW=%2&TILECOL=%3&tk=%4").arg(zoom).arg(y).arg(x).arg(QStringLiteral("3a351e098b778e937c05a85f4bdc2e4e"));   //网页版密钥

t0.tianditu.gov.cn ----- 服务器地址 { t0 ~ t7} ,发现t0不太好使,可以多定义几个,供选择。

密钥大哥们自己申请哦,上面是我个人申请的密钥,记得申请浏览器端密钥,链接如下: https://console.tianditu.gov.cn/api/key

使用后发现总会有卡顿的现象,甚至导致QGC崩溃,使用的时候要注意,有解法可以留言交流哈~

3.3 其它地图源相关链接

瓦片地图服务在线资源访问总结


以上有任何我没写明白或错误的欢迎留言,我会一直在的~

关于QGC地面站其它文章请点击这里:     QGC地面站

  • 27
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 36
    评论
QGC地面站QGroundControl)是用于控制和监控无人机系统的开源地面站软件。它提供了用户界面,用户可以使用该界面与无人机进行通信,发送指令和接收数据。对于想要学习和了解QGC地面站的人来说,以下是一些学习资料建议。 首先,可以通过访问QGC官方网站(https://docs.qgroundcontrol.com/)来获取官方的学习资料。该网站提供了QGC地面站的全部文档,包括用户手册、操作指南、程和开发者文档等。这些文档详细介绍了QGC地面站的各种功能和使用方法,对于初学者来说是很好的学习资料。 其次,QGC地面站的开源性质使得有很多社区和论坛可以参考和学习。比如,可以加入QGC地面站的官方论坛(https://discuss.px4.io/c/qgc)或者无人机开发社区,与其他开发者和用户交流经验和问题。在这些社区中,你可以找到很多有关QGC地面站的讨论和指导,还可以提出自己的问题和疑问。 此外,还可以寻找一些在线程和视频资源,例如在YouTube上搜索“QGC地面站程”等关键词,会有很多开发者分享的学习视频。在这些视频中,你可以看到具体的操作步骤和实例演示,更好地理解和掌握QGC地面站的使用方法。 最后,建议尝试实际操作QGC地面站无人机连接和控制。实践是学习的最佳方式,只有亲自操作才能更好地理解和掌握软件的功能。可以尝试模拟连接无人机、发送指令、查看数据等操作,进一步加深对QGC地面站的理解。 综上所述,通过官方文档、社区交流、在线程和实践操作等多种途径,可以全面了解和学习QGC地面站的使用方法和功能。有了这些学习资料的支持,相信你能够更好地掌握和应用QGC地面站

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值