Source: GraphicPoint.js

/**
 * @content 点对象功能组件
 * @author fjl 2019-6-24 下午2:52:36
 */
import { NativeModules } from 'react-native';
import Graphic from './Graphic';
import Dot from './Dot';
import ObjectUtils from './components/ObjectUtils';
let GP = NativeModules.JSGraphicPoint;
/**
 * @constructor GraphicPoint
 */
export default class GraphicPoint extends Graphic {
  constructor() {
    super();
    Object.defineProperty(this, '_MGGraphicPointId', {
      get: function() {
        return this._MGGraphicId;
      },
      set: function(_MGGraphicPointId) {
        this._MGGraphicId = _MGGraphicPointId;
      },
    });
  }

  /**
   * 构造一个新的 GraphicPoint 对象。
   * @memberOf GraphicPoint
   * @returns {Promise.<GraphicPoint>}
   */
  async createObj() {
    try {
      var { GraphicPointId } = await GP.createObj();
      var graphicPoint = new GraphicPoint();
      graphicPoint._MGGraphicPointId = GraphicPointId;
      return graphicPoint;
    } catch (e) {
      console.error(e);
    }
  }

  /**
   * 设置点的位置
   * @memberOf GraphicPoint
   * @param {Dot} point 点的位置
   * @returns {Promise<void>}
   */
  async setPoint(point) {
    try {
      if(this.isValid() && ObjectUtils.isValidObject(point) && point.isValid()){
        await GP.setPoint(this._MGGraphicPointId, point._MGDotId);
      } else {
        console.log('GraphicPoint or point is invalid !');
      }
    } catch (e) {
      console.error(e);
    }
  }

  /**
   * 获取点的位置
   * @memberOf GraphicPoint
   * @returns {Promise<Dot>}
   */
  async getPoint() {
    try {
      if(this.isValid()){
        let { pointID } = await GP.getPoint(this._MGGraphicPointId);
        var dot = new Dot();
        dot._MGDotId = pointID;
  
        return dot;
      } else {
        console.log('GraphicPoint is invalid !');
      }
      
    } catch (e) {
      console.error(e);
    }
  }

  /**
   *设置点的大小
   * @memberOf GraphicPoint
   * @param {Number} size
   * @returns {Promise<void>}
   */
  async setSize(size) {
    try {
      if(this.isValid()){
        await GP.setSize(this._MGGraphicPointId, size);
      } else {
        console.log('GraphicPoint is invalid !');
      }
    } catch (e) {
      console.error(e);
    }
  }
  /**
   * 获取点的大小
   * @memberOf GraphicPoint
   * @returns {Promise<Number>}
   */
  async getSize() {
    try {
      if(this.isValid()){
        let pointSize = await GP.getSize(this._MGGraphicPointId);
        
        return pointSize;
      } else {
        console.log('GraphicPoint is invalid !');
      }
    } catch (e) {
      console.error(e);
    }
  }

  /**
   * 设置点的位置及大小
   *  @memberOf GraphicPoint
   * @param {Dot} point
   * @param {Number} size
   * @returns {Promise<void>}
   */
  async setPointAndSize(point, size) {
    try {
      if(this.isValid() && ObjectUtils.isValidObject(point) && point.isValid()){
        await GP.setPointAndSize(this._MGGraphicPointId, point._MGDotId, size);
      } else {
        console.log('GraphicPoint or point is invalid !');
      }
    } catch (e) {
      console.error(e);
    }
  }
}