rn_supermap
Version:
rn_supermap 一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。
107 lines (97 loc) • 3.12 kB
JavaScript
/*********************************************************************************
Copyright © SuperMap. All rights reserved.
Author: Wang zihao
E-mail: pridehao@gmail.com
**********************************************************************************/
import {NativeModules} from 'react-native';
let LSV = NativeModules.JSLayerSettingVector;
import GeoStyle from './GeoStyle.js';
import LayerSetting from './LayerSetting.js';
/**
* @class LayerSettingVector
* @description 矢量图层设置类。
*/
export default class LayerSettingVector extends LayerSetting{
constructor(){
super();
Object.defineProperty(this,"_SMLayerSettingVectorId",{
get:function(){
return this._SMLayerSettingId
},
set:function(_SMLayerSettingVectorId){
this._SMLayerSettingId = _SMLayerSettingVectorId;
}
})
}
/**
* 创建一个LayerSettingVector实例
* @memberOf LayerSettingVector
* @returns {Promise.<LayerSettingVector>}
*/
async createObj(){
try{
var {_layerSettingVectorId_} = await LSV.createObj();
var layerSettingVector = new LayerSettingVector();
layerSettingVector._SMLayerSettingVectorId = _layerSettingVectorId_
return layerSettingVector;
}catch (e){
console.error(e);
}
}
/**
* 获取矢量图层的风格。
* @memberOf LayerSettingVector
* @returns {Promise.<GeoStyle>}
*/
async getStyle(){
try{
var {geoStyleId} = await LSV.getStyle(this._SMLayerSettingVectorId);
var geoStyle = new GeoStyle();
geoStyle._SMGeoStyleId = geoStyleId;
return geoStyle;
}catch (e){
console.error(e);
}
}
/**
* 设置矢量图层的风格。
* @memberOf LayerSettingVector
* @param {object} geoStyle - 矢量图层的风格。
* @returns {Promise.<void>}
*/
async setStyle(geoStyle){
try{
await LSV.setStyle(this._SMLayerSettingVectorId,geoStyle._SMGeoStyleId);
}catch (e){
console.error(e);
}
}
/**
* 获取矢量图层的风格。
* @memberOf LayerSettingVector
* @returns {Promise.<type>}
*/
async getType(){
try{
var {type} = await LSV.getType(this._SMLayerSettingVectorId);
var typeStr = 'type';
switch (type){
case 0 : typeStr = 'VECTOR';
break;
case 1 : typeStr = 'RASTER';
break;
case 2 : typeStr = 'GRID';
break;
default : throw new Error("Unknown LayerSetting Type");
}
return typeStr;
}catch (e){
console.error(e);
}
}
}
LayerSettingVector.TYPE = {
VECTOR:0,
RASTER:1,
GRID:2
}