qt 使用百度在线地图 方法2

使用百度在线地图两个关键点,一是html页面准备;二是qt 与js 语言的交互。

1,html页面的准备,双击页面就可以出现如下效果。

主要代码:

<!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" /><title>基于GPS的位置追踪及地理围栏</title><style type="text/css">body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}p{margin-left:5px; font-size:14px;}</style><script src="./qwebchannel.js"></script> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=FoLM5Y9oQWzihtXGq5cmCMZsC7ElrrLw"></script>
</head><body><div id="allmap"></div>
<script type="text/javascript">
// 百度地图API功能//地图初始化var map = new BMap.Map("allmap");var navigationControl = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT,type: BMAP_NAVIGATION_CONTROL_LARGE,enableGeolocation: true});map.addControl(navigationControl);            // 添加平移缩放控件map.addControl(new BMap.ScaleControl());      // 添加比例尺控件var overviewControl = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:true});map.addControl(overviewControl);              // 添加缩略图控件控件var mapType1 = new BMap.MapTypeControl({anchor: BMAP_ANCHOR_TOP_RIGHT,mapTypes:[BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]});map.addControl(mapType1);                     // 添加地图类型控件map.enableScrollWheelZoom();   //启用滚轮放大缩小,默认禁用//map.enableContinuousZoom();    //启用地图惯性拖拽,默认禁用map.enableKeyboard();          //启用键盘移动地图map.enableDragging();          //启用地图拖拽map.enableDoubleClickZoom();   //启用双击放大//map.setMapType(BMAP_HYBRID_MAP);map.centerAndZoom(new BMap.Point(55.000883333 , 50.234851667), 5);map.setCurrentCity("长沙");
</script></html>

2,qt 与js 语言的交互

qt 端加载html页面。注册相应通道

    m_map = new QWebEngineView(this);QWebChannel *pWebChannel = new QWebChannel(m_map->page());      //为网页视图页面创建通道channelpInteractObj = new TInteractObj(this);    //创建通道对象用于与JS交互//"interactObj"为注册名,JS调用的对象名必须和它相同pWebChannel->registerObject(QStringLiteral("interactObj"), pInteractObj);//注册通道对象供JS调用m_map->page()->setWebChannel(pWebChannel);  /设置通道//当网页返回数据,则会返回到通道对象pInteractObj中,然后再发送信号到主类OnReceiveMessageFromJS中处理connect(pInteractObj, &TInteractObj::SigReceivedMessFromJS, this, &MapLoaction::OnReceiveMessageFromJS);//向网页发送信号需要利用通道对象pInteractObj的SigSendMessageToJS信号connect(this, &MapLoaction::SigSendMessageToJS, pInteractObj, &TInteractObj::SigSendMessageToJS);QWebEnginePage *page = m_map->page();page->load(QUrl("file:///./testData/map.html"));//map->resize(1000, 1000);ui.gridLayout_pos->addWidget(m_map);m_map->show();

html 页面中调用 qt函数

window.onload = function() {  new QWebChannel(qt.webChannelTransport, function(channel) {    //浏览器内核自带var interactObj = channel.objects.interactObj;      //注册对象名// alert("success1");//Web connect the Qt signal, then Qt can call "output" functioninteractObj.SigSendMessageToJS.connect(function(fun,lng,lati,strdev,dg) {    //alert(lng+"  success:"+lati);if(fun==0)updateDataTrail(lng,lati);else{x_point=lng;y_point=lati;//clearAllMarker();myAddMarker(strdev);}//if(str == "ok")//{	//alert("success");//interactObj.JSSendMessage(1,2);           //发送消息//}});    });  }  

最终效果,本图片为我们实际应用中的一个效果图。

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

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

相关文章

【Maven技术专题】「入门到精通」教你如何使用Maven中引用依赖本地Jar包,并进行打包输出

前言 在使用Maven管理Java项目时&#xff0c;有时需要引入一些存放在系统特定位置的JAR文件。这些JAR文件可能是你自己编写的&#xff0c;也可能是其他来源的。无论是哪种情况&#xff0c;使用 Maven 的 system 范围和 systemPath 参数&#xff0c;可以方便地引入这些本地依赖…

主流全文搜索方案对比

Lucene 、 Solr 、 Elasticsearch 是目前主流的全文搜索方案&#xff0c;基于 倒排索引 机制完成快速全文搜索。 Lucene Lucene 是 Apache 基金会维护的一套完全使用 Java 编写的信息搜索工具包&#xff08; Jar 包&#xff09;&#xff0c;它包含了索引 结构、读写索引工具、…

Logstash输入Kafka输出Es配置

Logstash介绍 Logstash是一个开源的数据收集引擎&#xff0c;具有实时管道功能。它可以从各种数据源中动态地统一和标准化数据&#xff0c;并将其发送到你选择的目的地。Logstash的早期目标主要是用于收集日志&#xff0c;但现在的功能已经远远超出这个范围。任何事件类型都可…

PHP是什么?

PHP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛用于服务器端Web开发的开源脚本语言。最初由Rasmus Lerdorf于1994年创建&#xff0c;并于1995年发布了第一个版本。PHP语言的设计初衷是用于处理动态网页&#xff0c;尤其是用于构建Web应用程序。 PHP脚本通过嵌入…

Python从入门到精通九:Python异常、模块与包

了解异常 什么是异常 当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”, 也就是我们常说的BUG bug单词的诞生 早期计算机采用大量继电器工作&#xff0c;马克二型计算机就是这样的。 19…

ARM(中断实验) 2023.12.12

main.h #include "key_interrupt.h"#include "myuart.h"void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j);}}int main(){//中断初始化key1_it_config();key2_it_config();key3_it_config();//灯初始化led_init();//现象是发送一个a串口…

理解排序算法:冒泡排序、选择排序与归并排序

简介&#xff1a; 在计算机科学中&#xff0c;排序算法是基础且重要的概念。本文将介绍三种常见的排序方法&#xff1a;冒泡排序、选择排序和归并排序。我们将探讨它们的工作原理、特点和适用场景&#xff0c;以帮助读者更好地理解和选择合适的排序方法。 冒泡排序 冒泡排序是…

logback日志框架使用

依赖引入 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.7</version> </dependency> 使用logback日志框架只需要引入以上即可&#xff0c;(我们平时使用较多的Slf4j…

浏览器提示不安全

当我们使用浏览器访问一个网站时&#xff0c;如果该网站使用的是HTTPS连接&#xff0c;那么浏览器会对其进行安全性的检查。其中一项重要的检查就是确认该网站是否拥有有效的SSL证书。然而&#xff0c;有时我们会在浏览器中看到“不安全”的警告&#xff0c;这通常是由于SSL证书…

三天精通Selenium Web 自动化 - Selenium(Java)环境搭建

1 下载JDK JDK下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2 安装和配置JDK 安装目录尽量不要有空格 D:\Java\jdk1.8.0_91; D:\Java\jre8设置环境变量&#xff1a; “我的电脑”->右键->“属性”->…

跟着官网学 Vue - 基础

1、跟 Vue 说 Hello World&#xff01; <!--跟 Vue 说 Hello World&#xff01; --><script> // 导出一个 Vue 组件 export default {// 数据data() {return {message: Hello World! lfsun}} } </script><template><!-- 使用数据中的信息渲染标题 …

C.小苯的排列构造

C-小苯的排列构造_北京信息科技大学第十五届程序设计竞赛&#xff08;同步赛&#xff09; (nowcoder.com) 凑2很容易想出来&#xff0c;但是2 4 1 3 这个内核不好想&#xff0c;算是一种尝试和经验吧 #include<bits/stdc.h> using namespace std;int n;int main() {cin&g…

Nginx命令---检查配置文件语法是否正确

介绍 使用命令检查 nginx 配置语法是否正确。 命令 检查默认配置文件&#xff1a; /sbin/nginx -t检查指定配置文件&#xff1a; /sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

Go map 大小

如何得到一个 map 占用了多少内存 go get github.com/520MianXiangDuiXiang520/MapSizepackage mainimport ("fmt""github.com/520MianXiangDuiXiang520/MapSize" )func main() {m : make(map[int]struct{})for i : 0; i < 100; i {m[i] struct{}{}}f…

今天公司来了个拿 30K 出来的测试,算是见识到了基础的天花板

今天上班开早会就是新人见面仪式&#xff0c;听说来了个很厉害的大佬&#xff0c;年纪还不大&#xff0c;是上家公司离职过来的&#xff0c;薪资已经达到中高等水平&#xff0c;很多人都好奇不已&#xff0c;能拿到这个薪资应该人不简单&#xff0c;果然&#xff0c;自我介绍的…

CPU、内存与硬盘及IO操作

目录 1、概念简介 1.1 CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09; 1.2 硬盘&#xff08;Hard Disk Drive&#xff09; 1.3 内存&#xff08;Memory&#xff09; 2、计算机程序在进行io读写操作时&#xff0c;这三者的功能和实现原理 1、概…

【C语言】结构体实现位段

引言 对位段进行介绍&#xff0c;什么是位段&#xff0c;位段如何节省空间&#xff0c;位段的内存分布&#xff0c;位段存在的跨平台问题&#xff0c;及位段的应用。 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》 &#x1f388;跟着猪巴戒&#xff0c;…

使用paddleocr识别图片文本的一种方案

pdf文本分为两种&#xff0c;一种是标准的pdf格式的文本&#xff0c;这种无需利用ocr识别&#xff0c;另外一种就是图片文本&#xff0c;这种需要进行ocr的识别。 OCR 识别文本和文本区域 ppstructure是paddleocr里面的一个子库&#xff0c;可以识别文档的页眉页脚、正文、标…

从手工测试进阶中高级测试?如何突破职业瓶颈...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、手工测试如何进…

oh-my-zsh 安装和配置

安装zsh sudo apt update sudo apt install zsh安装oh-my-zsh sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"配置~/.zshrc sudo vim ~/.zshrc添加以下内容 ZSH_THEME"steeef" HISTFILE~/.zsh_history HISTS…