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