一 、首先,需要在自己的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添加按钮点击切换卫星地图和街道地图相关推荐

  1. Qt 实现按钮点击切换按钮图片

    最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去. ...

  2. android切换字体颜色,Android开发实现按钮点击切换背景并修改文字颜色的方法

    本文实例讲述了Android开发实现按钮点击切换背景并修改文字颜色的方法.分享给大家供大家参考,具体如下: 其实原理很简单,用到的是selector,用来设置android:background和an ...

  3. qt中如何模拟按钮点击_Qt 实现按钮点击切换按钮图片

    最近在做一个课程设计(智能家居管家),因为控制要用到门,灯,警报等一系列至少拥有两个状态的物品,所以想弄一个切换图片的效果,点击按钮一次,按钮上的图片切换成另一个图片(另一个状态),再次点击切换回去. ...

  4. java添加按钮点击事件_如何为odoo 10中的按钮点击事件添加一个java脚本处理程序?...

    我想使用java脚本为header中的按钮创建一个处理程序.下面我视图模型给出:如何为odoo 10中的按钮点击事件添加一个java脚本处理程序? inherit_id="web.asset ...

  5. 鼠标点击按钮图片切换+自动切换+左右按钮点击切换效果

    今天来分享一下[鼠标点击按钮,图片进行切换+图片自动切换+点击左右按钮图片进行切换的三种效果的组合代码]. 最后的效果如下:     Html代码部分: <!doctype html>&l ...

  6. qt 取消按钮点击效果_Qt实现自定义按钮的三态效果

    Qt 实现自定义按钮的三态效果 好久之前做的一个小软件,好长时间没动过了,在不记 录下有些细节可能都忘了, 这里整理下部分功能的实现. 按 钮的三态,指的是普通态.鼠标的停留态.点击态,三态是 界面交 ...

  7. java 按钮 事件_Java 添加按钮点击事件

    展开全部 xml文件代码如下: android:id="@+id/button1" android:layout_width="wrap_content" an ...

  8. android 通知栏按钮,android 通知栏添加按钮点击效果

     //注册按钮广播 private void setButtonBroadCast(){ final String STATUS_BAR_COVER_CLICK_ACTION="down ...

  9. Android studio添加按钮点击进入下一页

    先来效果图: 首先创建第二个页面(与创建第一个页面时一样). 在content_main.xml文件中添加以下代码: <Buttonandroid:id="@+id/next" ...

最新文章

  1. 2020年人工智能汽车将出台多项标准
  2. 服务器主机防御系统,主机入侵防御系统
  3. 阿里云服务器1M带宽是多少
  4. EL在java里的意义
  5. 英语磁带与计算机磁带区别,小学教材仍配发英语磁带遭吐槽:谁还用录音机
  6. 【C++深入探索】Copy-and-swap idiom详解和实现安全自我赋值
  7. html 盒子重叠,CSS3 box-shadow用于重叠的div
  8. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——E题 Seek the Joker II
  9. 利用python进行数据分析—四、Numpy基础:数组与向量化计算
  10. 1049. Counting Ones
  11. 《一课经济学》六、政府价格管制
  12. java中ArrayList(基础)
  13. APP创意IDEA记录
  14. Encoded password does not look like bcrypt
  15. Windows怎么查看开关机记录事件?
  16. 能耗指标与数据中心规模-孙长青
  17. 《算法竞赛入门经典(第二版)》pdf
  18. sort()排序函数
  19. nginx安装教程(centos系统)
  20. 洛谷P1001题解--zhengjun

热门文章

  1. 不再纠结devDependencies与dependencies
  2. Linux 启动jar项目相关命令(解决关闭Linux终端,程序自动停止问题)
  3. Apache配置及应用
  4. UART,SPI,IIC,RS232通信时序和规则
  5. 蓝懿ios技术交流和心得分享 16.1.30
  6. 使用RecyclerView实现瀑布流,仿照小红书,解决顶部留白、卡顿等问题
  7. “小而美”企业的战略规划思路解读
  8. windows下的OpenGL视频播放器开发环境
  9. 【FFMPEG】vs2019调用FFmpeg动态库教程
  10. 【文学文娱】《有用无用论》