UNPKG

rn_supermap

Version:

rn_supermap 一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。

276 lines (255 loc) 7.85 kB
/********************************************************************************* Copyright © SuperMap. All rights reserved. Author: Wang zihao E-mail: pridehao@gmail.com **********************************************************************************/ import {NativeModules} from 'react-native'; let T = NativeModules.JSTrack; import Dataset from './Dataset.js'; import Datasets from './Datasets.js'; /** * @class Track * @description 轨迹记录类。 */ export default class Track { /** * 创建一个Track对象 * @memberOf Track * @returns {Promise.<Track>} */ async createObj(){ try{ var {_trackId_} = await T.createObj(); var track = new Track(); track._SMTrackId = _trackId_; return track; }catch (e){ console.error(e); } } /** * 创建轨迹数据集,创建出来的数据集为点数据集。 * @memberOf Track0 * @param {object} datasource - 轨迹数据集所属的数据源。 * @param {string} name - 数据集的名称。 * @returns {Promise.<Dataset>} */ async createDataset(datasource,name){ try{ var {datasetId} = await T.createDataset(this._SMTrackId,datasource._SMDatasourceId,name); var dataset = new Dataset(); dataset._SMDatasetId = datasetId; return dataset; }catch (e){ console.error(e); } } /** * 获取是否用户自定义定位点。(该方法只支持android设备) * @memberOf Track * @returns {Promise.<Promise.customLocation>} */ async getCustomLocation(){ try{ var {customLocation} = await T.getCustomLocation(track._SMTrackId); return customLocation; }catch (e){ console.error(e); } } /** * 获取轨迹数据集。 * @memberOf Track * @returns {Promise.<Dataset>} */ async getDataset(){ try{ var {datasetId} = await T.getDataset(this._SMTrackId); var dataset = new Dataset(); dataset._SMDatasetId = datasetId; return dataset; }catch (e){ console.error(e); } } /** * 获取距离间隔,单位为米,默认的距离间隔是5米。 * @memberOf Track * @returns {Promise.<Promise.distanceInterval>} */ async getDistanceInterval(){ try{ var {distanceInterval} = await T.getDistanceInterval(track._SMTrackId); return distanceInterval; }catch (e){ console.error(e); } } /** * 获取匹配线数据集集合。 * @memberOf Track * @returns {Promise.<Datasets>} */ async getMatchDatasets(){ try{ var {idArr} = await T.getMatchDatasets(this._SMTrackId); if(idArr === false){ return false; } var objArr = []; for(var i=0; i<idArr.length; i++) { var dataset = new Dataset(); dataset._SMDatasetId = idArr[i]; objArr.push(dataset); } return objArr; }catch (e){ console.error(e); } } /** * 获取时间间隔。 * @memberOf Track * @returns {Promise.<Promise.timeInterval>} */ async getTimeInterval(){ try{ var {timeInterval} = await T.getTimeInterval(track._SMTrackId); return timeInterval; }catch (e){ console.error(e); } } /** * 获取当前是否使用速度和方位角模式。(该方法只支持android设备) * @memberOf Track * @returns {Promise.<Promise.isSpeedDirectionEnable>} */ async isSpeedDirectionEnable(){ try{ var {isSpeedDirectionEnable} = await T.isSpeedDirectionEnable(track._SMTrackId); return isSpeedDirectionEnable; }catch (e){ console.error(e); } } /** * 设置是否用户自定义定位点,默认为true。(该方法只支持android设备) * @memberOf Track * @param {boolean} bCustomLocation - 是否用户自定义定位点。 * @returns {Promise.<void>} */ async setCustomLocation(bCustomLocation){ try{ await T.setCustomLocation(track._SMTrackId,bCustomLocation); }catch (e){ console.error(e); } } /** * 设置轨迹数据集,用户使用轨迹功能时,要先使用创建轨迹数据集的方法创建数据集,然后调用该方法设置轨迹数据集。 * @memberOf Track * @param {object} datasetVector - 轨迹数据集。 * @returns {Promise.<void>} */ async setDataset(dataset){ try{ await T.setDataset(track._SMTrackId,dataset._SMDatasetId); }catch (e){ console.error(e); } } /** * 设置距离间隔,单位为米,距离间隔值必须大于或等于3米,否则会自动处理为3米。 * @memberOf Track * @param {number} interval - 距离间隔。 * @returns {Promise.<void>} */ async setDistanceInterval(interval){ try{ await T.setDistanceInterval(track._SMTrackId,interval); }catch (e){ console.error(e); } } /** * 设置GPSData数据,只有将setCustomLocation(boolean bCustomLocation)参数设置为true时,该接口才起作用。 *(该方法只支持android设备) * @memberOf Track * @param {object} jsonGpsData - 用户设置的gpsdata。 * @returns {Promise.<void>} */ async setGPSData(jsonGpsData){ try{ await T.setGPSData(track._SMTrackId,jsonGpsData); }catch (e){ console.error(e); } } /** * 设置匹配线数据集集合,为轨迹抓路功能使用,该数据集集合应为线数据集集合。 * @memberOf Track * @deprecated * @param {Array} datsets - 设置匹配线数据集集合。 * @returns {Promise.<void>} */ async setMatchDatasets(datsets){ try{ //to do await T.setMatchDatasets(track._SMTrackId,datsets._SMDatasetsId); }catch (e){ console.error(e); } } /** * 设置速度和方位角模式,支持转弯、高速、低速场景下记录轨迹点的稀疏和加密 *(该方法只支持android设备) * @memberOf Track * @param {number} speedDirectionEnable - 距离间隔。 * @returns {Promise.<void>} */ async setSpeedDirectionEnable(speedDirectionEnable){ try{ await T.setSpeedDirectionEnable(track._SMTrackId,speedDirectionEnable); }catch (e){ console.error(e); } } /** * 设置时间间隔,单位为秒,时间间隔值必须大于20秒,否则设置时间间隔失败。 * @memberOf Track * @param {number} timeInterval - 时间间隔。 * @returns {Promise.<void>} */ async setTimeInterval(timeInterval){ try{ await T.setTimeInterval(track._SMTrackId,timeInterval); }catch (e){ console.error(e); } } /** * 开启轨迹功能。 * @memberOf Track * @returns {Promise.<void>} */ async startTrack(){ try{ await T.startTrack(track._SMTrackId); }catch (e){ console.error(e); } } /** * 关闭轨迹功能。 * @memberOf Track * @returns {Promise.<void>} */ async stopTrack(){ try{ await T.stopTrack(track._SMTrackId); }catch (e){ console.error(e); } } }