来源:优游网责编:网络时间:2024-02-17 20:04:07
一、前言
网上其实有很多各种各样的离线地图下载器,大部分都是要收费的谷歌离线地图,免费的要么是限制了下载的瓦片数量或者级别,要么是下载的瓦片图打上了水印,看起来很难看,由于经常需要用到离线地图,摆脱这个限制,特意花了点时间重新研究了瓦片地图的原理,做了个离线地图下载器,其实瓦片地图下载没有那么复杂,其实就是从开放的几个服务器地址组建要请求的瓦片地图的地址,发送请求以后会自动将图片返回给你,你只需要拿到图片数据保存成图片即可。
瓦片地图下载流程步骤如下: 1. 获取可视区域或者行政区域的范围 2. 拿到区域的左下角右上角经纬度坐标 3. 根据层级数计算对应层级的瓦片数 4. 自动生成下载瓦片地图的地址并发出请求 5. 解析收到的数据保存成图片 6. 更新对应界面的下载数量和进度 7. 可选择对应保存的目录、全选层级、中途停止下载等 8. 可选择是下载街道图还是卫星图等
二、功能特点多线程同步下载多级别瓦片地图,不卡界面。内置多个离线地图下载请求地址,自动随机选择一个发送请求。下载地图类型同时支持街道图和卫星图。自动计算可视区域或者行政区域的下载瓦片数量。下载的级别可以自定义范围和选择。每个瓦片下载完成都发送信号通知,参数包括下载用时。可设置下载最大超时时间,超过了则丢弃跳到下一个下载任务。实时显示下载进度,以及当前级别已经下载的瓦片数和总瓦片数。下载过程中可以停止下载,下载完成自动统计总用时。内置经纬度和屏幕坐标互相转换函数。目前支持百度地图,其他地图比如谷歌地图、腾讯地图、高德地图可以定制。函数接口友好和统一,使用简单方便,就一个类。支持任意Qt版本、任意系统、任意编译器。三、体验地址体验地址:/s/-nPeLQ 提取码:1jkp 文件名:.zip国内站点:/国际站点:/个人主页:/知乎主页:///四、效果图
五、相关代码
void MapDownload::download(const QString &url, const QString &dirName, const QString &fileName, int zoom)
{
if (url.isEmpty()) {
return;
}
//启动计时
QTime time;
time.start();
//先判断文件夹是否存在,不存在则新建
QDir dir(dirName);
if (!dir.exists()) {
dir.mkpath(dirName);
}
//局部的事件循环,不卡主界面
QEventLoop eventLoop;
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));
connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
//设置下载超时
QTimer timer;
connect(&timer, SIGNAL(timeout()), &eventLoop, SLOT(quit()));
timer.setSingleShot(true);
timer.start(timeout);
eventLoop.exec();
bool error = false;
if (reply->bytesAvailable() > 0 && reply->error() == QNetworkReply::NoError) {
//读取所有数据保存成文件
QByteArray data = reply->readAll();
QFile file(dirName + fileName);
if (file.open(QFile::WriteOnly | QFile::Truncate)) {
file.write(data);
file.close();
}
} else {
//可以自行增加下载失败的统计
error = true;
qDebug() << TIMEMS << "下载出错" << reply->errorString();
}
int useTime = time.elapsed();
emit finsh(url, fileName, zoom, useTime, error);
}
拳击游戏还是有很多的玩家都是非常的喜欢尝试的,很是刺激,并且也是能够发泄心中的不快吧,现在市面上是有很多的类型的拳击的游戏,这些游戏一般都是一些格斗的游戏,其实是非常的有趣,也是相当的刺激的,游戏中是有一些不同的场景都是能够去进行体验的,我们也是能够去刺激的进行对战的,小编现在就是收集了一些有意思的拳击游戏,相信你们一定会喜欢的。
趣味烧脑游戏一般比较适合人们在无聊的时候打发时间,同时其操作以及游戏规则上都比较简单,让大家不会有上手很难的感受,可以轻轻松松就体验这个游戏的独特乐趣,并且随时下线都不用担心坑队友,同时也可以和好友一起来玩法,有多种挑战模式,可以根据自己的真实水平以及喜好来选择不同的挑战模式参与,收获到不一样的游戏趣味体验!
太空冒险类游戏顾名思义就是以外太空为背景打造的一类游戏,玩家在这种类型的游戏当中可以体验到非常独特有意思的太空冒险旅程,玩法内容的设计上充满了想象力,所有的场景都是人们在日常生活中从来没有见过的,而你可以驾驶各种各样的战舰展开无比激烈的星际对决,同时可以邀请身边的朋友一起参与到冒险当中,竞技对决的过程中十分注重
这里面为大家收集了一系列比较好玩的女生游戏,并且将会不断的更新,每个玩家都可以根据自己的喜好来选择适合自己的游戏打发时间,每款游戏都设置了新手教程,这样方便大家更加轻松的上手,不同类型的游戏可以让你领略到不一样的游戏乐趣,并且在这里随时都可以尝试其他的玩法,让你一次性就可以玩个够,同时还可以将这里的游戏乐趣分享
神之墓地2.6d全攻略,扫盲的新手都不会
基于百度地图的离线地图下载器的功能特点及应用
《真三国无双3》评测:一骑当千体感动作游戏
八个字的疯狂猜歌答案人气爆棚
如何在安卓和IOS上离线下载谷歌地图?
(但丁地狱pc版)端游系列动作冒险游戏推荐
易小星:借公路片探讨两代人的冲突
落叶木质藤本植物的夏季开花浆果的资料
《但丁的神曲》:地狱篇/但丁之地狱/地狱之旅
《天天酷跑刷金币教程》最新无限飞刷技巧分享