Qt 使用百度的离线地图

使用百度离线地图,一下载百度离线包(offlinemap);二是准备地图瓦片(不同级别的瓦片);三 准备html主页面;四,Qt与页面交互。

1,百度离线包 

链接:https://pan.baidu.com/s/1XyzAChKKhY_XOxAsypKLyQ 
提取码:1234

2,地图部分瓦片,链接:https://pan.baidu.com/s/1dQ409qhtmjIXjk9Hj4Fjiw 
提取码:1234。如果要更多,可以自己在这个网站下载 望远网-百度地图下载,不过有些级别(放大缩小级别)下载不了,需要会员。

3,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>百度地图离线API V2.1  www.xiaoguo123.com</title>
	<style type="text/css">
  body, html,#allmap, #tab, #mapfrm {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
  #menu{max-height:600px;overflow-y:auto}
  #menu ul{padding:0; padding-left:10px;margin:0}
  td{font-size:14px;background-color: #f7f9fd;}
  h3{margin:0}
  h4{margin:0;}
  #mapfrm{border:0}
  /**设置滚动条的样式**/
	::-webkit-scrollbar {
	    width: 10px;
	}
	/**滚动槽**/
	::-webkit-scrollbar-track {
	    box-shadow: inset 0 0 6px #d1cfcf; 
	    border-radius: 10px;
	}
	/**滚动条滑块**/
	::-webkit-scrollbar-thumb {
	    border-radius: 12px;
	    background: #f7f7f7; 
	    -webkit-box-shadow: inset 0 0 6px #d1cfcf; 
	}
	::-webkit-scrollbar-thumb:window-inactive {
	    background: rgba(245,245,245,0.4); 
	}
  </style>
	<script type="text/javascript" src="offlinemap_demo/jquery.js"></script>
	<script type="text/javascript" src="qrc:///map/qwebchannel.js"></script> 
	<script type="text/javascript">
	 function updateData(x,y)
	 {
		window.location.href='offlinemap_demo/demo/7_6.html';
		
		console.log("---x2:"+x+"----y2:"+y);
	 }
	</script>
	<script type="text/javascript">
	 function output(message)
	 {
		var output = document.getElementById("output");
		output.innerHTML =output.innerHTML+message+"\n";
	 }
	 
	
	 window.onload = function()
	{
		//window.location.href='offlinemap_demo/demo/7_6.html';
		//output("install webchanncel");
		/*new QWebChannel(qt.webChannelTransport,function(channel)
		{
			var interactObj = channel.objects.interactObj;
			document.getElementById("send").onclick=function()
			{
				var input = document.getElementById("Input");
				if(!input.value)
				{
					return;
				}
			
			output(input.value);
			interactObj.recvStringSlot(input.value);
			input.value ="";
		}
		interactObj.sendStringSignal.connect(function(str){output("Received Str" + str);});

		interactObj.recvStringSlot("Client  connected ,准备发送数据");
		})*/
	}

	 </script>
	
</head>
<body>
<table id="tab" border="0">
    <tr>
      <td valign="top" height="100%">
      <iframe class="" unselectable="on" name="mapfrm" id="mapfrm" src="offlinemap_demo/demo/7_6.html"></iframe>
      </td>
    </tr>
  </table>
</body>

</html>

四,Qt与页面交互

与上一篇的 Qt使用百度在线地图方法2实现方面一样。

因为本人不是专业做地图这一块,很多功能还需要你们自己挖掘。不过注意放大级别越大,需要的瓦片越多,导致程序安装包也会变的很大很大。本例追享的瓦片只支持放大到9级。

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
要在Qt中加载百度离线地图,可以按照以下步骤进行: 1. 首先,确保已经下载了百度离线地图的相关资源文件,地图瓦片文件和配置文件。这些文件通常是通过百度地图开放平台的离线地图下载接口获取的。 2. 在Qt项目中创建一个新的QWebEngineView控件,该控件可以用于显示Web内容。 3. 使用QWebEngineProfile类的静态方法setDefaultProfile()将默认的Web引擎配置文件设置为离线地图的资源文件路径。 4. 调用QWebEngineView的load()方法,将离线地图的HTML文件路径作为参数传入,以加载地图。 5. 编译并运行Qt项目,即可在应用程序中加载并显示百度离线地图。 下面是一个简单的示例代码,展示了如何在Qt中加载百度离线地图: ```cpp #include <QtWidgets> #include <QtWebEngineWidgets> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建Web引擎视图 QWebEngineView view; // 设置离线地图资源文件路径 QString offlineMapPath = "path/to/offline/map.html"; QWebEngineProfile::defaultProfile()->setHttpCacheType(QWebEngineProfile::MemoryHttpCache); QWebEngineProfile::defaultProfile()->setCachePath(offlineMapPath); // 加载离线地图 view.load(QUrl::fromLocalFile(offlineMapPath)); view.show(); return app.exec(); } ``` 请注意,这里的路径"path/to/offline/map.html"需要替换为实际的离线地图HTML文件的路径。 这样,当运行该代码时,就会在Qt应用程序中成功加载并显示百度离线地图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十启树

您的认可是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值