Source: ElpParam.js

/**
 * @content 地球椭球参数功能组件
 * @author  lidafeng
 */
import { NativeModules } from 'react-native';

let EP = NativeModules.JSElpParam;

/**
 * @class ElpParam
 * @description 地球椭球参数
 */
export default class ElpParam {

    /**
   * 构造一个新的 ElpParam 对象。
   * @memberOf ElpParam
   * @returns {Promise.<ElpParam>}
   */
  async createObj() {
    try {
      let { ElpParamId } = await EP.createObj();
      let elpParam = new ElpParam();
      elpParam._MGElpParamId = ElpParamId;
      return elpParam;
    } catch (e) {
      console.error(e);
    }
  }


  /**
   * 通过成员变量的名称设置值 <br> 
   * 成员变量的名称 --- 注释: <br>
   *   'a' --- 地球椭球长轴,double <br>
   *   'b' --- 地球椭球短轴,double <br>
   *   'af' --- 地球椭球扁率,double <br>
   *   'r' --- 等面积球体半径,double <br>
   *   'name' --- 地球椭球体名称,String <br>
   * 
   * @memberOf ElpParam
   * @param {String} key 成员变量的名称
   * @param {String| Number} value 成员变量的值
   * @returns {Promise.<void>} 
   * @example  
        let eleParam = new ElpParam();
        let eleParamObj = await eleParam.createObj();
        await eleParamObj.set('name', '王五');
        await eleParamObj.set('a', 20.4);
        

   */
  async set(key, value){
      try {
        let obj = {[key]: value};
        await EP.set(this._MGElpParamId, key, obj);
      } catch (e) {
          console.error(e);
      }
  }

  /**
   * 通过成员变量的名称获取值 <br>
   * 成员变量的名称包括: <br>
   *   'a' --- 地球椭球长轴 <br>
   *   'b' --- 地球椭球短轴 <br>
   *   'af' --- 地球椭球扁率 <br>
   *   'r' --- 等面积球体半径 <br>
   *   'name' --- 地球椭球体名称 <br>
   * 
   * @memberOf ElpParam
   * @param {String} key 成员变量的名称
   * @returns {String|Number} 成员变量值
   */
  async get(key){
      try {
          let {value} = await EP.get(this._MGElpParamId, key);
          return value;
      } catch (e) {
          console.error(e);
      }
  }

  /**
   * 设置所有成员变量值,字符串中的键请与示例的键保持一致
   * 
   * @memberOf ElpParam
   * @param {String} stringValue 键值对格式字符串
   * @returns {Promise.<Void>}
   * @example 
        // 设置全部变量
        let obj = { a: 5.0, b: 7.0, af: 9.0, r: 10.0, name: '张三' } 
        
        // JSON对象设置全部变量
        // let obj = {"a": 2.0, "b": 3.0, "af": 4.0, "r": 6.0, "name": "李四"};
        
        // 字符串
        let stringValue = JSON.stringify(obj);
        let eleParam = new ElpParam();
        let eleParamObj = await eleParam.createObj();
        await eleParamObj.fromString(stringValue);
   

   */
    async fromString(stringValue){
        try {
            if(stringValue === undefined || stringValue === null || stringValue.length === 0){
                return;
            }
            let objValue = JSON.parse(stringValue);
            await EP.fromString(this._MGElpParamId, objValue);
        } catch (e) {
            console.error(e);
        }
    }

    /**
     * 获取所有的成员变量名称和值
     * @memberOf ElpParam
     * @returns {String} json字符串
     */
    async toString(){
        try {
            let stringValue = await EP.toString(this._MGElpParamId);
            return stringValue;
        } catch (e) {
            console.error(e);
        }
    }

}