Source: GeometryExp.js

/**
 * @content 抽象基类,用于定义所有的几何对象基类功能组件
 * @author  2019-09-09
 */
import { NativeModules } from 'react-native';
import Geometry from './Geometry.js';

let GE = NativeModules.JSGeometryExp;

/**
 * @class GeometryExp
 */
export default class GeometryExp extends Geometry {
  /**
   * 投影变换
   * @memberOf Geometry
   * @param ptOrigSRef 原始投影系
   * @param ptDestSRef 目标投影系
   * @returns {Promise.<Geometry>} 投影后的几何对象
   */
  async transSRS(origSRef, destSRef) {
    try {
      let { GeometryId } = await GE.transSRS(
        this._MGGeometryId,
        origSRef._MGSRefDataId,
        destSRef._MGSRefDataId
      );
      var geometry = new Geometry();
      geometry._MGGeometryId = GeometryId;
      return geometry;
    } catch (e) {
      console.error(e);
    }
  }

  /**
   * 投影变换
   * @memberOf Geometry
   * @param ptOrigSRef 原始投影系
   * @param ptDestSRef 目标投影系
   * @param param 椭球坐标系变换参数
   * @returns {Promise.<Geometry>} 投影后的几何对象
   */
  async transSRSOfParam(origSRef, destSRef, param) {
    try {
      let { GeometryId } = await GE.transSRS(
        this._MGGeometryId,
        origSRef._MGSRefDataId,
        destSRef._MGSRefDataId,
        param._MGElpTransParamId
      );
      var geometry = new Geometry();
      geometry._MGGeometryId = GeometryId;
      return geometry;
    } catch (e) {
      console.error(e);
    }
  }
}