qt与js交互,并在百度地图上绘制轨迹

前言:
获得了照片的GPS信息后,我们现在要做的就是把GPS信息传入JS中,然后通过百度地图API将轨迹绘制出来。

一:在程序页面加载地图
qt5.6及之后取消了QWebkits,转为使用QWebEngine.

在qt5.6的额ui设计师界面中,并不能直接找到QWebView,如果没有这个ui组件,我们就无法将浏览器嵌入到我们的程序中,就无法加载地图了,所以第一步我们要弄出一个类似的组件,在这里我使用了QWebEngineView。

QWebEngineView使用widget组件,拖拉出来是一个透明的组件,对着组件按右键->promote to.. ->选择QWebEngineView(没有的话手动输入QWebEngineView),如图所示。

这样我们便能通过ui组件来加载地图了。

ui->widget->load(QUrl("qrc:/map/map.html"));//也可以填本地html文件地址
ui->widget->show();

这样就可以看到地图了。

二:将GPS信息传入JS
在ui设计师界面拖一个button,然后转到槽,在mainwindow.cpp中这样写这个槽函数。

void MainWindow::on_buttonDraw_clicked()
{
    ui->stackedWidget->setCurrentIndex(0);

    QJsonArray num_json, num2_json;//声明QJsonArray
    QJsonDocument num_document, num2_document;  //将QJSonArray改为QJsonDocument类
    QByteArray num_byteArray, num2_byteArray;

    double num[50];
    double num2[50];
    for(int i =0;i<len;i++)
    {
        num[i] = result[i].GeoLocation.Longitude;//result为保存照片信息的对象,详情请参考上一篇博客
        num2[i] = result[i].GeoLocation.Latitude;
    }

    for(int i=0; i<
Qt是一款跨平台的C++图形用户界面应用程序开发框架,能够轻松开发高质量的跨平台应用程序。而百度地图是目前国内最流行的Web地图服务,为开发者提供了非常便捷的地图展示、位置检索、路线规划等能力。在Qt中使用百度地图,并能够与js交互,可以大大拓宽了应用的功能。 我们可以使用Qt Quick的WebView来实现百度地图的加载,同时也能够在WebView中嵌入JavaScript代码,实现和地图的互动。在Qt Quick中,可以使用QtWebView模块的WebEngineView或WebEngineViewExperimental类型的对象加载Web页面,并进行动态链接库的调用,从而实现与JavaScript的交互。 具体步骤如下: 1. 首先,在Qt Creator中创建一个Qt Quick项目,并在QML文件中加入一个WebView组件,用于加载百度地图。 2. 在C++代码中调用WebEngineView或WebEngineViewExperimental类型的对象,通过setUrl()方法加载百度地图的URL。 3. 通过WebView对象的runJavaScript()方法,在QML文件中嵌入JavaScript代码,并获取、设置百度地图中的特定属性或事件。 例如,我们可以在JavaScript中调用百度地图的JavaScript API,获取当前地图的中心点、缩放级别、添加标记、绘制图形等动作,从而实现和地图的交互。 总之,Qt的WebEngineView提供了非常便捷的方法来在Qt应用中加载Web页面,并与JavaScript进行交互,因此,我们可以使用它轻松地实现与百度地图交互,为我们的应用程序增加更多的功能和乐趣。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值