文档

Location-定位服务组件

更新时间:

本文介绍登云梯JS开发框架中Location组件所提供的相关方法说明,支持的硬件平台列表以及参考示例代码。该定位组件包含Wi-Fi定位和基站定位,是基于阿里云物联网平台的一个服务。

说明

Location组件依赖网络,请使用NetWork组件,保证网络连接正常。

硬件平台

产品型号

是否支持

硬件类型

固件版本号

HaaS600Kit

开发板

4.0.1

HaaS510

DTU

4.0.1

HaaS520

DTU

4.0.1

HaaS530

DTU

4.0.1

HaaS531

DTU

4.0.1

HaaS632-LT32V

模组

4.0.1

HaaS600-EC600S

模组

4.0.1

HaaS600-EC600N

模组

4.0.1

HaaS600-EC600U

模组

4.0.1

HaaS600-N715

模组

4.0.1

getAccessApInfo()

获取接入的AP信息。

入参

无。

返回

String类型:accessedApInfo。

getScannedApInfo()

获取扫描到的AP信息。

入参

无。

返回

String类型:scannedApInfo。

getAccessedLbsInfo()

获取接入的基站信息。

入参

无。

返回

String类型:accessedLbsInfo。

getNearLbsInfo(Object option)

获取周边邻区基站信息。

入参

无。

返回

String类型:nearLbsInfo。

示例代码

import * as iot from 'iot';
import * as network from 'network';
import * as location from 'location';

var net = network.openNetWorkClient();
var loc = location.openLocationClient();

var productKey = '';    /* your productKey */
var deviceName = '';    /* your deviceName */
var deviceSecret = '';  /* your deviceSecret */

var device;
var timerHandler;
var btsInfo;
var nearbtsInfo;

function createDevice() {
    device = iot.device({
        productKey: productKey,
        deviceName: deviceName,
        deviceSecret: deviceSecret
    });

    device.on('connect', () => {
        console.log('connected');

        setInterval(() => {
            btsInfo = loc.getAccessedLbsInfo();
            nearbtsInfo = loc.getNearLbsInfo();

            var lbsMessage = JSON.stringify({
                cdma: '0',
                bts: btsInfo,
                nearbts: btsInfo
            })

            console.log('lbs message is ' + lbsMessage)

            device.postEvent({
                id: 'LocationInfo',
                params: lbsMessage
            });

        }, 3000);
    });

    /* 网络断开事件 */
    device.on('disconnect', () => {
        console.log('iot disconnect ');
    });

    /* mqtt消息 */
    device.on('message', (topic, payload) => {
        console.log('mqtt message')
        console.log('mqtt topic is ' + topic);
        console.log('mqtt payload is ' + payload);
    })

    /* 关闭连接事件 */
    device.on('end', () => {
        console.log('iot client just closed');
    });

    /* 发生错误事件 */
    device.on('error', (err) => {
        console.log('error ' + err);
    });
}

function netCallback(result)
{
    if (result == 1) {
        console.log('net connect...');
        createDevice();
    } else if (result == 0) {
        console.log('net disconnect...');
        if (timerHandler) {
            clearInterval(timerHandler);
        }

        if (typeof(device) != 'undefined') {
            device.end();
        }
    }
}

function netInit(callback) {
    var status = net.getStatus();
    console.log('net status is: ' + status);

    if (status == 'connect') {
        callback(1);
    } else {
        net.on('connect', () => {
            callback(1);
        });
    }

    net.on('disconnect', () => {
        console.log('net is disconnect.');
        callback(0);
    });
}

function appEntry()
{
    netInit(netCallback);
}

appEntry();