QT实现加载百度离线地图

在Qt中加载百度地图需要用到网络浏览器,在此采用webEngine模块,然后用webchannel进行qt与HTML/JavaScript的交互。
需求描述:软件加载百度地图,用鼠标在地图上选点,并进行标号,每次加1,最后连成一条路径,为后期工作做准备。

百度地图API应用

  • 采用百度离线地图API2.1版本,网上均可以下载到,然后放到项目debug文件夹下
  • 瓦片地图下载,可以采用全能地图下载器,下载好后放到指定文件夹
  • 复制其中一个demo文件,根据自己需要的功能进行添加
地图展示
var map = new BMap.Map("map_demo",mapOptions);      // 设置街道图为底图
var point = new BMap.Point(120.393751, 36.065743);   // 创建点坐标
map.centerAndZoom(point,13);  // 初始化地图,设置中心点坐标和地图级别
鼠标点击标记加序号

addEventListener("click",function(e))对点击事件进行监听,参数e会返回当前点的地理位置,然后在此处用Marker添加标记,在实现每次标记加1时,因为标记本身是一个图片,因此可以考虑对标记加标签(定义一个全局的i,每点击一次加1),然后调整下位置(为了美观),背景设置为透明,基本就可以实现所要的效果。标签的颜色和背景可以使用Label类下的setStyle方法设置:

label.setStyle({
    color:
  • 9
    点赞
  • 182
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
要在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应用程序中成功加载并显示百度离线地图

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值