# Source: AnnotationView.js

    /**
     * @content 标记功能组件
     * @author lidafeng
     */
    import { NativeModules } from 'react-native';

    let ANV = NativeModules.JSAnnotationView;

    import Annotation from './Annotation.js';
    /**
     * @class AnnotationView
     */
    export default class AnnotationView {
      /**
       * 构造一个新的 AnnotationView 对象。
       * @memberOf AnnotationView
       * @returns {Promise.<AnnotationView>}
       */
      async createObj(mapView, annotation) {
        try {
          var { AnnotationViewId } = await ANV.createObj(
            mapView._MGMapViewId,
            annotation._MGAnnotationId
          );
          var annotationView = new AnnotationView();
          annotationView._MGAnnotationViewId = AnnotationViewId;
          return annotationView;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置标记
       * @memberOf AnnotationView
       * @param annotation
       * @returns {Promise.<void>}
       */
      async setAnnotation(annotation) {
        try {
          await ANV.setAnnotation(
            this._MGAnnotationViewId,
            annotation._MGAnnotationId
          );
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取标记
       * @memberOf AnnotationView
       * @return {Promise.<Annotation>}标记
       */
      async getAnnotation() {
        try {
          let { AnnotationId } = await ANV.getAnnotation(this._MGAnnotationViewId);
          var annotation = new Annotation();
          annotation._MGAnnotationId = AnnotationId;
          return annotation;
        } catch (e) {
          console.error(e);
        }
      }
    }