离线百度地图,QT添加按钮点击切换卫星地图和街道地图
一 、首先,需要在自己的map.html文件内添加:
var bdmapcfg;// 切换地图类型function satemap(){//百度地图api配置bdmapcfg = {'home':'../../baidumapv2/', //api主目录'imgext':'.jpg', //瓦片地图后缀'tiles_dir':'../../baidumapv2/satellite' //瓦片图目录};bdmapcfg.tiles_dir="../../baidumapv2/satellite";loadJScript();}function normalmap(){//百度地图api配置bdmapcfg = {'home':'../../baidumapv2/', //api主目录'imgext':'.png', //瓦片地图后缀'tiles_dir':'../../baidumapv2/roadmap' //瓦片图目录};bdmapcfg.tiles_dir="../../baidumapv2/roadmap";loadJScript();}//百度地图api功能function loadJScript(){var script = document.createElement("script");script.type = "text/javascript";script.src = "../../baidumapv2/baidumap_offline_v2_20160921_min.js";document.body.appendChild(script);//异步加载增加代码window.BMap=window.BMap||{};window.BMap.apiLoad = function(){delete window.BMap.apiLoad;if(typeof init == "function"){init();}}}function init(){var lon = 116.403694,lat = 39.914271;var onlinemap = new OnlineMap(lon,lat,"map_demo");onlinemap.init();}//异步加载地图window.onload = loadJScript;
二、QT中添加两个QRadioButton,用来切换地图类型:
connect(ui->radioButton,SIGNAL(clicked(bool)),this,SLOT(checkMapType()));connect(ui->radioButton_2,SIGNAL(clicked(bool)),this,SLOT(checkMapType()));
void MainWindow::checkMapType()
{if(ui->radioButton->isChecked()){QString command = QString("normalmap()");ui->widget->page()->runJavaScript(command);}else if(ui->radioButton_2->isChecked()){QString command = QString("satemap()");ui->widget->page()->runJavaScript(command);}
}
三、最后还需要添加一个js文件:
mapControl.js :
function OnlineMap( lon, lat, dom, mapType) {debugger;var isShow = false;var t1;//地图上加载一个要素function addCircle() {remove_overlay();var SW = new BMap.Point(lon - 0.022146, lat - 0.018801);var NE = new BMap.Point(lon + 0.022317, lat + 0.018025);groundOverlayOptions = {opacity : 0.3,displayOnMinLevel : 13,displayOnMaxLevel : 18}// 初始化GroundOverlayvar groundOverlay = new BMap.GroundOverlay(new BMap.Bounds(SW, NE),groundOverlayOptions);// 设置GroundOverlay的图片地址groundOverlay.setImageURL("images/leida_white.gif");map.addOverlay(groundOverlay);}//清除覆盖物function remove_overlay() {map.clearOverlays();}//自动刷新要素信息function refreshFlyInfo() {var level = map.getZoom();if (level < 13) {//remove_overlay();isShow = false;//window.clearInterval(t1);} else {isShow = true;}if (isShow) {addCircle();}}OnlineMap.prototype.init = function(mapType) {map = "";map = new BMap.Map(dom,{enableMapClick:false}); // 创建Map实例point = new BMap.Point(lon, lat);map.centerAndZoom(point, 18);map.setMaxZoom(21);if(mapType){map.setMapType(mapType);}map.enableScrollWheelZoom(); //启用滚轮放大缩小t1 = window.setInterval(function() {refreshFlyInfo();}, 3000);map.addEventListener("zoomend", function() {window.clearInterval(t1);if (this.getZoom() < 13) {//remove_overlay();} else {for (var i = 0; i < map.getOverlays().length; i++) {map.getOverlays()[i].show();}t1 = window.setInterval(function() {refreshFlyInfo();}, 1000);addCircle();}});addCircle();}//显示点图标和文字信息OnlineMap.prototype.pointsInfo = function(flyInfo) {addCircle();if (flyInfo.length > 0) {for (var i = 0; i < flyInfo.length; i++) {var point1 = new BMap.Point(Number(flyInfo[i].x),Number(flyInfo[i].y));var marker = new BMap.Marker(point1); // 创建标注marker.setTop(true);var icon = new BMap.Icon("images/fly.png",new BMap.Size(80, 80));var iconshaow = new BMap.Icon("/images/fly_shadow.png", new BMap.Size(50, 50));marker.setIcon(icon);marker.setZIndex(100);marker.setShadow(iconshaow);if (map.getZoom() >= 13) {map.addOverlay(marker); // 将标注添加到地图中}var label = new BMap.Label(flyInfo[i].message, {offset : new BMap.Size(20, -10)});marker.setLabel(label);}}}}
对了,别忘了在map.html中添加:
这是加载mapControl.js的路径
<script type="text/javascript" src="../mapControl.js"></script>
离线百度地图,QT添加按钮点击切换卫星地图和街道地图相关推荐
- Qt 实现按钮点击切换按钮图片
最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去. ...
- android切换字体颜色,Android开发实现按钮点击切换背景并修改文字颜色的方法
本文实例讲述了Android开发实现按钮点击切换背景并修改文字颜色的方法.分享给大家供大家参考,具体如下: 其实原理很简单,用到的是selector,用来设置android:background和an ...
- qt中如何模拟按钮点击_Qt 实现按钮点击切换按钮图片
最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去. ...
- java添加按钮点击事件_如何为odoo 10中的按钮点击事件添加一个java脚本处理程序?...
我想使用java脚本为header中的按钮创建一个处理程序.下面我视图模型给出:如何为odoo 10中的按钮点击事件添加一个java脚本处理程序? inherit_id="web.asset ...
- 鼠标点击按钮图片切换+自动切换+左右按钮点击切换效果
今天来分享一下[鼠标点击按钮,图片进行切换+图片自动切换+点击左右按钮图片进行切换的三种效果的组合代码]. 最后的效果如下: Html代码部分: <!doctype html>&l ...
- qt 取消按钮点击效果_Qt实现自定义按钮的三态效果
Qt 实现自定义按钮的三态效果 好久之前做的一个小软件,好长时间没动过了,在不记 录下有些细节可能都忘了, 这里整理下部分功能的实现. 按 钮的三态,指的是普通态.鼠标的停留态.点击态,三态是 界面交 ...
- java 按钮 事件_Java 添加按钮点击事件
展开全部 xml文件代码如下: android:id="@+id/button1" android:layout_width="wrap_content" an ...
- android 通知栏按钮,android 通知栏添加按钮点击效果
//注册按钮广播 private void setButtonBroadCast(){ final String STATUS_BAR_COVER_CLICK_ACTION="down ...
- Android studio添加按钮点击进入下一页
先来效果图: 首先创建第二个页面(与创建第一个页面时一样). 在content_main.xml文件中添加以下代码: <Buttonandroid:id="@+id/next" ...
最新文章
- 2020年人工智能汽车将出台多项标准
- 服务器主机防御系统,主机入侵防御系统
- 阿里云服务器1M带宽是多少
- EL在java里的意义
- 英语磁带与计算机磁带区别,小学教材仍配发英语磁带遭吐槽:谁还用录音机
- 【C++深入探索】Copy-and-swap idiom详解和实现安全自我赋值
- html 盒子重叠,CSS3 box-shadow用于重叠的div
- 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——E题 Seek the Joker II
- 利用python进行数据分析—四、Numpy基础:数组与向量化计算
- 1049. Counting Ones
- 《一课经济学》六、政府价格管制
- java中ArrayList(基础)
- APP创意IDEA记录
- Encoded password does not look like bcrypt
- Windows怎么查看开关机记录事件?
- 能耗指标与数据中心规模-孙长青
- 《算法竞赛入门经典(第二版)》pdf
- sort()排序函数
- nginx安装教程(centos系统)
- 洛谷P1001题解--zhengjun
热门文章
- 不再纠结devDependencies与dependencies
- Linux 启动jar项目相关命令(解决关闭Linux终端,程序自动停止问题)
- Apache配置及应用
- UART,SPI,IIC,RS232通信时序和规则
- 蓝懿ios技术交流和心得分享 16.1.30
- 使用RecyclerView实现瀑布流,仿照小红书,解决顶部留白、卡顿等问题
- “小而美”企业的战略规划思路解读
- windows下的OpenGL视频播放器开发环境
- 【FFMPEG】vs2019调用FFmpeg动态库教程
- 【文学文娱】《有用无用论》