QT下,基于位置服务能力平台(LBS)的API测试

本文介绍了中国移动自主研发的GSM模块M6311,并详细阐述了如何利用中移物联网LBS服务进行基站定位及混合定位的方法。通过实际案例展示了在Qt环境下调用LBS API接口的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

M6311是中国移动自主研发的GSM模组,支持贴片SIM卡,具有小尺寸、低功耗、抗干扰能力强的特点,可向电力、石油、水务、燃气、金融等行业的远程无线抄表行业客户提供可靠的M2M通信功能。同时M6311还支持java虚拟机,客户可以在M6311上通过调用提供的接口函数,进行应用开发,实现非常丰富的功能。


位置定位能力服务(Location Based Service,简称LBS)一般应用于手机用户、终端用户,基于位置的服务,通过运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息,为用户提供相应服务的一种增值业务。作为物联网应用的一项重要辅助功能,LBS能弥补GPS无法覆盖的地区,提供给用户更方便快捷的定位服务。目前中移物联网LBS提供基站定位接口、混合定位接口、地图纠偏接口。


(登录网站 http://lbs.heclouds.com/ ,注册后获取APIKEY,调用API时会用到该APIKEY,用于鉴权)
测试APIKEY: XXXXXXXXXXXXXXXXXX


http://lbs.heclouds.com/api/process.jsp上可以看到关于API接口的函数

在此我仅测试了关于基站定位接口的方式,别的可以自行测试


基站定位接口:http://lbs.heclouds.com/api/gsmlbs.jsp ,

传递参数和返回信息如图



报文形式:
GET
http://api.lbs.heclouds.com/api/gsmlbs?mcc=460&mnc=0&cell=30071&lac=13153&apikey=KEY 

HTTP/1.1
Host: api.lbs.heclouds.com


混合定位接口: http://lbs.heclouds.com/api/lbs.jsp ,下图为参数说明



在qt内的使用代码如下

.h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QNetworkAccessManager>
#include <QFile>
#include <QDebug>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private:
    Ui::Widget *ui;

    QFile *file;
    QNetworkAccessManager *accessManager;
    QNetworkRequest *request;
    QNetworkReply *reply;

    void httpDownload();
private slots:
    void replyFinished(QNetworkReply *reply);
};

#endif // WIDGET_H

.c文件


#include "widget.h"
#include "ui_widget.h"
#include <QUrl>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QByteArray>



Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    httpDownload();
}

Widget::~Widget()
{
    delete ui;
    if (request)
    delete request;
}


void Widget::httpDownload(){
    QString tmp = "http://api.lbs.heclouds.com/api/gsmlbs?mcc=460&mnc=0&cell=30071&lac=13153&apikey=你的APIKEY";  //基站定位接口模式
    //QString tmp = "http://api.lbs.heclouds.com/api/lbs?celltowers=[{\"mcc\":\"460\",\"mnc\":\"0\",\"lac\":\"13153\",\"cell\":\"30231\"}]&type=0&apikey=你的APIKEY";//混合定位接口
    QUrl url(tmp);
    accessManager=new QNetworkAccessManager(this);
    request = new QNetworkRequest(url);
    connect(accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
    reply = accessManager->get(*request);

    // qDebug() << reply;
}

void Widget::replyFinished(QNetworkReply *reply){

    QString re = QString(reply->readAll());

  //  qDebug()<< reply->readAll();

    ui->textBrowser->setText(re);

    reply->deleteLater();//要删除reply,但是不能在repyfinished里直接delete,要调用deletelater;

}

这里使用的get方式来获取,也可以用post方式,要注意的是,在用混合方式的时候由于有很多地方需要在字符串中使用转义字符\,所以要注意

post方式需要设置setHeader,然后还有格式上要注意,具体的区别自己百度吧。


运行如下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值