# Source: MapServiceLayerInfo.js

    /**
     * @content 地图服务图层信息功能组件
     * @author  2019-09-25
     */
    import { NativeModules } from 'react-native';

    let MSLI = NativeModules.JSMapServiceLayerInfo;

    /**
     * @class MapServiceLayerInfo
     * @description 地图服务图层信息
     */
    export default class MapServiceLayerInfo {
      /**
       * 构造一个新的 MapServiceLayerInfo 对象。
       * @memberOf MapServiceLayerInfo
       * @returns {Promise.<MapServiceLayerInfo>}
       */
      async createObj(strName, layerId, dMinScale, dMaxScale, strStyle) {
        try {
          var { MapServiceLayerInfoId } = await MSLI.createObj(
            strName,
            layerId,
            dMinScale,
            dMaxScale,
            strStyle
          );
          var mapServiceLayerInfo = new MapServiceLayerInfo();
          mapServiceLayerInfo._MGMapServiceLayerInfoId = MapServiceLayerInfoId;
          return mapServiceLayerInfo;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取地图服务图层ID
       * @memberOf MapServiceLayerInfo
       * @return {Promise.<int>} 地图服务图层ID
       */
      async getLayerId() {
        try {
          return await MSLI.getLayerId(this._MGMapServiceLayerInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置地图服务图层ID
       * @memberOf MapServiceLayerInfo
       * @param {int} layerId 地图服务图层ID
       * @return {Promise.<void>}
       */
      async setLayerId(layerId) {
        try {
          await MSLI.setLayerId(this._MGMapServiceLayerInfoId, layerId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取地图服务图层名称
       * @memberOf MapServiceLayerInfo
       * @return {Promise.<String>} 地图服务图层名称
       */
      async getName() {
        try {
          return await MSLI.getName(this._MGMapServiceLayerInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取地图服务图层名称
       * @memberOf MapServiceLayerInfo
       * @param {String} StrName 地图服务图层名称
       * @return {Promise.<void>}
       */
      async setName(StrName) {
        try {
          await MSLI.setName(this._MGMapServiceLayerInfoId, StrName);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取地图服务图层最大缩放比
       * @memberOf MapServiceLayerInfo
       * @return {Promise.<double>} 地图服务图层最大缩放比
       */
      async getMaxScale() {
        try {
          return await MSLI.getMaxScale(this._MGMapServiceLayerInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置地图服务图层最大缩放比
       * @memberOf MapServiceLayerInfo
       * @param {double} maxScale 地图服务图层最大缩放比
       * @return {Promise.<void>}
       */
      async setMaxScale(maxScale) {
        try {
          await MSLI.setMaxScale(this._MGMapServiceLayerInfoId, maxScale);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取地图服务图层最小缩放比
       * @memberOf MapServiceLayerInfo
       * @return {Promise.<double>} 地图服务图层最小缩放比
       */
      async getMinScale() {
        try {
          return await MSLI.getMinScale(this._MGMapServiceLayerInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置地图服务图层最小缩放比
       * @memberOf MapServiceLayerInfo
       * @param {double} minScale 地图服务图层最小缩放比
       * @return {Promise.<void>}
       */
      async setMinScale(minScale) {
        try {
          await MSLI.setMinScale(this._MGMapServiceLayerInfoId, minScale);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取地图服务图层样式
       * @memberOf MapServiceLayerInfo
       * @return {Promise.<String>} 地图服务图层样式
       */
      async getStyle() {
        try {
          return await MSLI.getStyle(this._MGMapServiceLayerInfoId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置地图服务图层样式
       * @memberOf MapServiceLayerInfo
       * @param {String} strStyle 地图服务图层样式
       * @return {Promise.<void>}
       */
      async setStyle(strStyle) {
        try {
          await MSLI.setStyle(this._MGMapServiceLayerInfoId, strStyle);
        } catch (e) {
          console.error(e);
        }
      }
    }