Qt中使用QWebEngine加载百度离线地图,在特定地点加载个圣诞树

news2024/9/28 9:30:00

一、前言

2022年圣诞节到来啦,很高兴这次我们又能一起度过~
遇上圣诞节,正好最近研究了QT中加载百度离线地图,用百度地图API加载个圣诞树(主要我想要那个圣诞节特制勋章)。

二、创意名

在百度离线地图加载个圣诞树。

三、效果展示

在这里插入图片描述
本来应该做成gif格式,奈何电脑的制作工具找不到了,那个圣诞树会动的,在合肥的位置不灵不灵的。在这里插入图片描述

四、实现步骤(很重要)

4.1 前提

1、QT中能使用QWebEngine必须要在VS2017以及以上使用,才支持,这点很重要
2、百度离线地图地图下载我用的是 地址
里面有很多百度给的官方API用例
3、如果使用其他下载地图切片,我使用的是全能地图下载器,切记下载百度地图,因为你用的是百度的API,如果使用谷歌的那就下载对应的,不然地图加载不了

4.2 步骤

1、创建一个widget,然后提升为QWebEngineView;
2、在百度官方例子中使用一个满足自己功能,如果想日后自己使用,最好精简一个版本
3、QT与html前端的交互,功能可以用js写在html中,也可以写在其他中,通过Webchannel传递;

五、编码实现

主要代码展示
QT中初始化时候代码

    ui->setupUi(this);
    view = ui->widget;
    QDir temDir("../TestMap3/Baidu_JS/sample.html");
    QString absDir = temDir.absolutePath();

    QWebChannel *channel = new QWebChannel(this);

   //brige 是一个类,在qt中定义,然后在html文本中注册就可以使用   其中的功能函数
    channel->registerObject("bridge"   
    (QObject*)bridge::instance());
   view->page()->setWebChannel(channel);
   view->page()->load(QUrl(QString("file:///%0").arg(absDir)));
   connect(ui->pushButton, &QPushButton::clicked, [this]() {
       view->page()->runJavaScript("showSant()");

前端html主要代码

function showSant() {
      		var pt = new BMap.Point(117.209338, 31.85);
			var myIcon = new BMap.Icon("./sant.gif", new BMap.Size(32,32));
			var marker2 = new BMap.Marker(pt,{icon:myIcon});  // 创建标注
			map.addOverlay(marker2);              // 将标注添加到地图中
      }


//注册使用 bridge类
      new QWebChannel(qt.webChannelTransport, function(channel) {
        window.bridge = channel.objects.bridge;
        window.bridge.sigYourName.connect(function(name) {
          alert(name);
        });
      });

      function onShowMsgBox() {
        bridge.showMsgBox()
      }

      function onGetYourName() {
        bridge.getYourName();
      }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

演化博弈、复制动态方程与仿真

本文只整理和总结一下我的理解,文末列出了可供参考的更详细完整的资料。建议先看参考资料[1](博弈论公开课)的博弈论课程,可以直接从第11讲开始看。   参考链接[2]是关于演化博弈非常经典的一本书。   参考链接[5]涵盖内容比较…

CSDN文章质量检测系统

想知道你的文章在CSDN中质量如何吗? 你想知道你的CSDN文章到底写得怎么样吗? 你想要获得一个你的系统的CSDN文章评分吗? CSDN质量分数帮你解决这个问题,网址如下: https://www.csdn.net/qc 界面在如下,如果…

XGBoost模型的python实现

文章目录函数介绍实例二分类问题多分类问题作者:李雪茸函数介绍 实现 XGBoost 分类算法使用的是 xgboost 库的 XGBClassifier,具体参数如下: 1、max_depth:给定树的深度,默认为3 2、learning_rate:每一步…

SpringBoot整合TKMyBatis实现增删改查

文章目录什么是TKMybatis?SpringBoot整合TKMybatis实体类注解TKMapper接口如何使用基本增删改操作批量查询和删除批量添加自定义查询条件ExampleExample 条件设置Example 使用什么是TKMybatis? TKMybatis 是基于Mybatis 框架开发的一个工具,…

[4]MQTT协议基础--下

1.QoS服务质量等级 MQTT服务质量(Quality of Service 缩写 QoS)正是用于告知物联网系统,哪些信息是重要信息需要准确无误的传输,而哪些信息不那么重要,即使丢失也没有问题。 MQTT协议有三种服务质量级别: QoS 0 – 最多发一次…

公司jmeter分享

一、数据库压测组件功能说明 1.JDBC Connection Configuration:jdbc连接配置(一个测试计划可以有多个 JDBC Connection) 2.Variable Name for created pool: 创建池的变量名 连接绑定的变量名,JMeter可以使用多个连接,每个连接绑定到不同的变量;通过引用不同的绑定变量…

安全防范语音通知实现方案

语音通知作为一种强提醒的信息通知方式,非常适合使用在安全防范语音通知场景中,可以有效避免用户错过重要信息。那安全防范语音通知怎么实现?这里互亿无线小编为大家做个详细介绍: 一、如何发送安全防范语音通知信息 互亿无线语…

本地事务、分布式事务、CAP 定理与 BASE 理论、分布式事务几种方案、Linux 安装 Seata、Seata的使用-56

一:本地事务 1.1 事务的基本性质 1.数据库事务的几个特性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是 ACID; 原子性:一系列的操作整体不可拆分&#xf…

LVGL学习笔记8 - 字体

目录 1. 修改默认字体 2. 修改字体 3. 特殊字体 3.1 SUBPX字体 3.2 28像素压缩字体 3.3 16像素希伯来语/阿拉伯语/Perisan字母 3.4 16像素中文字体 3.5 8像素Ascii字体 3.6 16像素Ascii字体 3.7 内置图标 4. 超大字体 5. 编码方式 6. 添加字体 6.1 在线字体转换器 …

【微服务笔记01】微服务组件之Eureka注册中心的介绍及其基础环境的搭建

这篇文章,主要介绍微服务中的注册中心Eureka及其基础环境的搭建【源代码地址】。 目录 一、Eureka注册中心 1.1、什么是注册中心 1.2、注册中心原理 二、搭建Eureka注册中心环境 2.1、创建父工程,引入微服务依赖 2.2、创建Eureka服务端工程 &…

全球公开的DEM数据产品

1 简介 全球公开版地形数据包括:GTOPO30-DEM、ASTER-GDEM、SRTM90、ALOS-AW3D30等,其他的诸如World DEM及ALOS-AW3D (5m分辨率)等全球地形数据不能免费获得。 SRTM:由NASA 及国家地理空间情报局NGA采用2000年2月发射的“奋进号”…

word文件损坏打不开如何修复?文件丢失怎么办?

我们日常办公中,经常用到Word文档。但是有时会遇到word文件损坏、无法打开的情况。这时该怎么办?接着往下看,小编在这里就给大家带来Word文件修复的方法,以及Word文件丢失如何恢复的方法! 一、Word文件损坏怎么办 部分…

【vsan数据恢复】磁盘离线导致分布式存储瘫痪的数据恢复案例

vsan数据恢复环境: 一组4台服务器搭建vsan集群; 每台服务器配置有2组分别由6块硬盘组成的磁盘阵列,上层是虚拟机文件。 vsan故障: 在运行过程中,某一个节点的一块硬盘离线,vsan安全机制启动,开始…

梦想云图Node.JS服务 ( 最近更新时间:2022-12-30 10:04:50 )

说明 后台提供梦想Node.JS服务,方便调用控件后台功能,Windows服务程序所在目录:Bin\MxDrawServer\Windows,Linux服务程序所在目录:Bin\Linux\MxDrawServer 梦想云图Node.JS服务 ( 最近更新时间:2022-12-30 10:04:50 …

第三个脚本——时间加速and视频倍速

目录 本文主要内容 granr属性介绍 run-at属性 时间加速原理 视频倍速原理 完整示例 本文主要内容 介绍grant属性,run-at属性以及时间加速,视频倍速原理 granr属性介绍 相关函数四个: GM_setValue GM_getValue GM_listValues GM_del…

json基本使用与简介

一、简介 二、json两种构造结构 三、js解析JSON 1、JSON2解析JSON 2.用eval()方法把JSON字符串转化成JSON对象. 3.使用JSON2中的JSON对象的parser()方法解析JSON字符串 4. 使用JSON2中的JSON对象的stringify ()方法把JSON对象转换成字符串 5、案例 四、Java解…

【模型部署】人脸检测模型DBFace C++ ONNXRuntime推理部署(1)

系列文章目录 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署(0) 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署(1) 【模型部署】人脸检测模型DBFace C ONNXRuntime推理部署(2) 文章目录…

深度学习训练营之灵笼人物识别

深度学习训练营之灵笼人物识别原文链接环境介绍前置工作设置GPU导入数据数据查看数据预处理加载数据可视化数据检查数据配置数据集prefetch()功能详细介绍:归一化查看归一化后的数据构建VGG-19网络VGG优点VGG缺点利用官方给到的网络网络结构编译模型训练结果可视化预…

第03讲:GitHub的使用

一、创建远程仓库 访问GitHub官方网站,并创建账号,然后按照以下图示创建项目 复制仓库地址 二、远程仓库的操作 命令作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库…

vscode+opencv+mingw+cmake配置vscode下的opencv环境

目录介绍安装VsCode安装mingw安装cmake安装opencv,以及其扩展库 opencv_contrib安装python利用cmake生成opencv的Makefile文件cmake命令进行编译,安装配置opencv环境变量配置VSCODE测试DEMO介绍 参考链接:https://www.cnblogs.com/czlhxm/p/…