QGC(QGroundControl)地面站手把手教你改 | 您所在的位置:网站首页 › 高德地图地址变更怎么修改 › QGC(QGroundControl)地面站手把手教你改 |
如何添加高德地图和瓦片地图在线资源
1. 演示效果2. 代码添加3. 瓦片地图在线资源3.1 高德地图3.2 天地图3.3 其它地图源相关链接
所有的热爱都要不遗余力,真正喜欢它便给它更高的优先级,和更多的时间吧! 关于QGC地面站其它文章请点击这里: QGC地面站 1. 演示效果QGC地面站上地图源不是用不了就是比较旧,谷歌地图呢最好用,但是麻烦,你懂的。这里教你如何添加高德地图,其它地图类似,添加后效果如下:
以下代码,在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 实验室设备网 版权所有 |