QGC(QGroundControl)地面站手把手教你改 您所在的位置:网站首页 高德地图地址变更怎么修改 QGC(QGroundControl)地面站手把手教你改

QGC(QGroundControl)地面站手把手教你改

#QGC(QGroundControl)地面站手把手教你改| 来源: 网络整理| 查看: 265

如何添加高德地图和瓦片地图在线资源 1. 演示效果2. 代码添加3. 瓦片地图在线资源3.1 高德地图3.2 天地图3.3 其它地图源相关链接

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

关于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地面站



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有