# 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);
        }
      }
    }