/*
* @Description: In User Settings Edit
* @Author:xiaoying
* @Date: 2019-08-26 13:44:56
* @LastEditTime: 2019-08-31 13:32:51
* @LastEditors: mayuanye
*/
import { NativeModules } from 'react-native';
import Map from './Map.js';
let LE = NativeModules.JSLayerEnum;
/**
* @class LayerEnum
* @description android图层枚举功能组件
*/
export default class LayerEnum {
/**
* 构造一个新的LayerEnum对象
* @memberof LayerEnum
* @returns {Promise.<LayerEnum>}
*/
async createObj() {
try {
var { LayerEnumId } = await LE.createObj();
var layerEnum = new LayerEnum();
layerEnum._MGLayerEnumId = LayerEnumId;
return layerEnum;
} catch (e) {
console.error(e);
}
}
/**
* 初始化图层列表
* @memberof LayerEnum
* @param {Array} layers 图层列表
* @returns {boolean}
*/
async init(layers) {
try {
let result = await LE.init(this._MGLayerEnumId, layers);
return result;
} catch (e) {
console.error(e);
}
}
/**
* 移动至第一个
* @memberof LayerEnum
* @returns {boolean}
*/
async moveToFirst() {
try {
let result = await LE.moveToFirst(this._MGLayerEnumId);
return result;
} catch (e) {
console.error(e);
}
}
/**
* 移动至最后
* @memberof LayerEnum
* @returns {boolean}
*/
async moveToLast() {
try {
let result = await LE.moveToLast(this._MGLayerEnumId);
return result;
} catch (e) {
console.error(e);
}
}
/**
* 获取下一个MapLayer
* @memberof LayerEnum
* @returns {Promise<MapLayer>}
*/
async next() {
try {
let mapLayer = null;
var { MapLayerId } = await LE.next(this._MGLayerEnumId);
if(MapLayerId !== null){
mapLayer = await Map.creatMapLayerInstanceByID(MapLayerId);
}
return mapLayer;
} catch (e) {
console.error(e);
}
}
/**
* 获取前一个MapLayer
* @memberof LayerEnum
* @returns {Promise<MapLayer>}
*/
async prev() {
try {
let mapLayer = null;
var { MapLayerId } = await LE.prev(this._MGLayerEnumId);
if(MapLayerId !== null){
mapLayer = await Map.creatMapLayerInstanceByID(MapLayerId);
}
return mapLayer;
} catch (e) {
console.error(e);
}
}
}