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<
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值