1.百度离线地图下载

使用斑马鱼百度地图下载工具:下载地址
选中要下载的区域进行下载


我这里只下载普通地图,在下载目录生成tiles目录,如果选择混合地图会生成三个目录,并将目录内容拷贝斑马鱼对应目录下。

将bmap-offline目录拷贝到QT工程目录下

2.创建网页文件baiduMap.htlm

直接使用斑马鱼下dome里的html文件,并注意修改路径,我的baiduMap.htlm文件和bmap-offline目录在同一目录下:

    <script type="text/javascript" src="./bmap-offline/map3.0_init.js"></script><script type="text/javascript" src="./bmap-offline/map3.0.js"></script>

注意加上下面这行:

    <script type="text/javascript" src="./qwebchannel.js"></script>
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}</style><!-- 百度地图3.0 离线API Begin --><script type="text/javascript" src="./bmap-offline/map3.0_init.js"></script><script type="text/javascript" src="./bmap-offline/map3.0.js"></script><!-- 百度地图3.0 End --><script type="text/javascript" src="./qwebchannel.js"></script><title>地图展示</title>
</head>
<body><div id="allmap"></div>
</body>
</html>
<script type="text/javascript">// 百度地图API功能var map = new BMap.Map("allmap");    // 创建Map实例map.centerAndZoom(new BMap.Point(113.812308,34.798292), 12);  // 初始化地图,设置中心点坐标和地图级别//添加地图类型控件map.addControl(new BMap.MapTypeControl({mapTypes:[BMAP_NORMAL_MAP,BMAP_SATELLITE_MAP,BMAP_HYBRID_MAP]}));      //离线不支持//map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放setTimeout(function(){layer.msg('鼠标滚轮缩放',{'offset':'b'});},1000);</script><script type="text/javascript" src="../demo.js"></script>

3.QT程序编写

我是在一个自建的弹窗类Screen中展示的地图
1.screen.cpp

#include "screen.h"
#include "ui_screen.h"#include <QGuiApplication>
#include <QScreen>
#pragma execution_character_set("utf-8")Screen::Screen(QWidget *parent) :QWidget(parent),ui(new Ui::Screen)
{ui->setupUi(this);init_ui();
}Screen::~Screen()
{delete ui;
}void Screen::init_ui()
{//设置全屏this->setWindowState(Qt::WindowMaximized);this->setWindowFlags(Qt::FramelessWindowHint);this->setStyleSheet("background-color:rgb(14,14,14)");mapBaidu = new BaiduMap();layFloor = new QGridLayout();setLayout(layFloor);layFloor->setColumnStretch(0,1);layFloor->setRowStretch(0,1);layFloor->addWidget(mapBaidu->map);}

2.screen.h

#ifndef SCREEN_H
#define SCREEN_H#include <QWidget>
#include <QGridLayout>
#include <QLabel>
#include <QPushButton>
#include <QDir>
#include <QWebEngineView>
#include <QGridLayout>
#include "baidumap.h"
namespace Ui {class Screen;
}class Screen : public QWidget
{Q_OBJECTpublic:explicit Screen(QWidget *parent = nullptr);~Screen();private:Ui::Screen *ui;private:BaiduMap *mapBaidu;QGridLayout  *layFloor;void init_ui();
};#endif // SCREEN_H

地图类用于初始化地图及后期控制与地图的交互
3.baidumap.cpp

#include "baidumap.h"
#include <QDir>BaiduMap::BaiduMap()
{/*百度地图初始化*/map = new QWebEngineView();channel = new QWebChannel(this);QDir temDir("../E-governmentPlatform/baiduMap.html");QString absDir = temDir.absolutePath();QString filePath = "file:///" + absDir;map->page()->load(QUrl(filePath));map->resize(1000,1000);channel->registerObject(QString("baidu"),this);map->page()->setWebChannel(channel);
}

4.baidumap.h

#ifndef BAIDUMAP_H
#define BAIDUMAP_H#include <QObject>
#include <QWebEngineView>
#include <QWebChannel>
class BaiduMap : public QObject
{Q_OBJECT
public:QWebEngineView *map;BaiduMap();
private:QWebChannel *channel;
};#endif // BAIDUMAP_H

3. 运行效果

QT5.12.9 百度离线地图相关推荐

  1. QT实现加载百度离线地图

    在Qt中加载百度地图需要用到网络浏览器,在此采用webEngine模块,然后用webchannel进行qt与HTML/JavaScript的交互. 需求描述:软件加载百度地图,用鼠标在地图上选点,并进 ...

  2. web百度离线地图开发(详细教程)2019

    web百度离线地图开发(详细教程) 需求情景 主要参考 开发步骤 一.JS API文件下载 二.修改API文件 1.屏蔽ak验证 2.设置引用本地资源路径 3.下载本地资源 4.引用本地资源 三.加载 ...

  3. vue2+百度离线地图实现多车辆行驶动态轨迹

    vue2+百度离线地图实现行驶多车辆动态轨迹 实现多多车辆实时轨迹监控,每个10秒监测一次接口,进行动态追加.(前端实现,如果数量庞大的车辆移动,很消耗性能) 百度离线地图引入方法查看: vue项目实 ...

  4. 百度离线地图示例之四:热力图

    前言介绍: 主要是基于v3.0的API版本进行的离线,纯内网可操作,基本上实现了现有90%以上的功能点,能兼容jpg和png格式的瓦片图层,实现了原生和基于Vue两个版本(包含常用的55个示例),文末 ...

  5. 百度离线地图开发,node实现地图瓦片下载

    最近有个Web项目要用离线地图,项目是在内网环境,找了很多资料,踩了很多坑,好在已经实现了,下面把资料整理一下. 首先是百度离线地图开发包,原文地址是http://www.xiaoguo123.com ...

  6. 如何用百度离线API调用百度离线地图

    这里以广西南宁市为例,说明如何用百度离线API调用百度离线地图. 首先,点击视图左上方的地图类型按钮选择百度地图(如果没有该项请点击"更多"选项),然后在视图右上方选择广西省南宁市 ...

  7. 百度离线地图示例之三:矢量图

    前言介绍: 主要是基于v3.0的API版本进行的离线,纯内网可操作,基本上实现了现有90%以上的功能点,能兼容jpg和png格式的瓦片图层,实现了原生和基于Vue两个版本(包含常用的55个示例),文末 ...

  8. 百度离线地图示例之二:测距

    前言介绍: 主要是基于v3.0的API版本进行的离线,纯内网可操作,基本上实现了现有90%以上的功能点,能兼容jpg和png格式的瓦片图层,实现了原生和基于Vue两个版本(包含常用的55个示例),文末 ...

  9. 百度离线地图 —— 瓦片地图下载

    百度离线地图使用 下载工具,工具在文末. 解压,打开文件夹,找到 BaiDuMapTile.exe 应用程序,双击打开,下载瓦片地图. 下载完之后,有一个maptile文件夹,就是所需区域的瓦片地图 ...

最新文章

  1. (备忘)Java数据类型中String、Integer、int相互间的转换
  2. cv2.circle函数
  3. IDEA下maven项目Plugins和Dependencies红线
  4. 服务端的第五次课程:安全,认证,授权
  5. dual mysql 获取序列_MySQL获取周、月、天日期,生成排序号
  6. 更快学习 JavaScript的6个思维技巧
  7. openvswitch dpdk
  8. java 实现二分法
  9. 捐赠3亿元驰援疫情后,腾讯再出2亿元发起“战疫开发者公益联盟”
  10. JQuery Easyui/TopJUI 多表头创建
  11. 李宏毅机器学习之Deep Learning简介
  12. 华为a199升级android,华为A199(Ascend G710 电信版)救砖教程 救砖包 刷回官方系统支持OTA升级...
  13. 强化学习DRL--策略学习(Actor-Critic)
  14. iCloud如何只清理本地缓存而不删除云端文件
  15. Mysql(using temporary 与 using filesort)
  16. saf java_Android SAF实现外置SD卡的写入(JAVA层与JNI层hook)
  17. css实现聊天气泡对话框
  18. python实现生成word文档并转为pdf
  19. java中反三角函数怎么写,Java 数学三角函数正弦、余弦、正切以及反正弦、反余弦、反正切函数的使用...
  20. 屠蛟之路_蛟灵岛战役(上)_SixthDay

热门文章

  1. 发现一款国产PCB设计软件,还可以在线网页设计。立创
  2. jpa查询异常InvalidDataAccessApiUsageException
  3. 骁龙7nm旗舰来也!这一点终追上苹果/华为
  4. C# dotnet core TCP NAT UDP P2P 穿透 小引
  5. 数字化时代,奢侈品不在“高冷”
  6. Ear Recognition: More Than a Survey
  7. 4.3 lambda函数
  8. 如何在电脑资源管理器中删除华为手机助手以及其他顽固的图标
  9. 如何将MP3文件转成OGG?
  10. 理解box-sizing属性border-box,content-box