rn_supermap
Version:
rn_supermap 一款基于React-Native框架的移动应用开发工具。基于该开发工具,用户可以使用JavaScript开发语言,开发出在Android和IOS操作系统下运行的原生移动GIS应用,入门门槛低,一次开发,处处运行。
94 lines (87 loc) • 2.5 kB
JavaScript
/*********************************************************************************
Copyright © SuperMap. All rights reserved.
Author: Will
E-mail: pridehao@gmail.com
**********************************************************************************/
import {NativeModules} from 'react-native';
let F = NativeModules.JSFeature;
import Geometry from './Geometry.js';
/**
* @class Feature
* @description 几何对象类,包含几何对象与属性信息。
*/
export default class Feature {
/**
* Feature对象构造函数。
* @memberOf Feature
* @param {array} fieldNames - 指定的属性名数组。
* @param {array} fieldValues - 指定的属性值数组。
* @param {object} geometry - 指定的几何对象。
* @returns {Promise.<Feature>}
*/
async createObj(fieldNames,fieldValues,geometry){
try{
var {_featureId_} = await F.createObj(fieldNames,fieldValues,geometry._SMGeometryId);
var feature = new Feature();
feature._SMFeatureId = _featureId_;
return feature;
}catch (e){
console.error(e);
}
}
/**
* 获取属性名数组。
* @memberOf Feature
* @returns {Promise.<Array>}
*/
async getFieldNames(){
try{
var arr = F.getFieldNames(this._SMFeatureId);
return arr;
}catch (e){
console.error(e);
}
}
/**
* 获取属性值数组。
* @memberOf Feature
* @returns {Promise.<array>}
*/
async getFieldValues(){
try{
var arr = F.getFieldValues(this._SMFeatureId);
return arr;
}catch (e){
console.error(e);
}
}
/**
* 获取几何对象。
* @memberOf Feature
* @returns {Promise.<Geometry>}
*/
async getGeometry(){
try{
var {geometryId} = await F.getGeometry(this._SMFeatureId);
var geometry = new Geometry();
geometry._SMGeometryId = geometryId;
return geometry;
}catch (e){
console.error(e);
}
}
/**
* 将类对象转换成Json串。
* @memberOf Feature
* @returns {Promise.<object>}
*/
async toJson(){
try{
var jsonString = await F.toJson(this._SMFeatureId);
var jsonObj = JSON.parse(jsonString);
return jsonObj;
}catch (e){
console.error(e);
}
}
}