{"version":3,"file":"AreaViewSymbol.mjs","sources":["../../../../../../packages/sdk/plugins/AreaView/AreaViewSymbol.ts"],"sourcesContent":["import * as L from 'leaflet'\nimport { ShipxyOptions } from '@map-sdk/sdk/config'\nimport { baselinesAtSeaSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/BaselinesAtSeaSymbol'\nimport { chinaDischargeAreaSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/ChinaDischargeAreaSymbol'\nimport { dischargeAreaSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/DischargeAreaSymbol'\nimport { exclusiveEconomicZoneSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/ExclusiveEconomicZoneSymbol'\nimport { seaMapToolSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/SeaMapToolSymbol'\nimport { timeZoneSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/TimeZoneSymbol'\nimport { globalSeaAreaSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/GlobalSeaAreaSymbol'\nimport { elaneStraitSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/ElaneStraitSymbol'\nimport { seaRouteSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/SeaRouteSymbol'\nimport { fisheryManagerSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/FisheryManagerSymbol'\nimport { earthQuakeAreaSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/EarthQuakeAreaSymbol'\nimport { pirateSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/PirateSymbol'\nimport { collisionRiskSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/CollisionRiskSymbol'\nimport { fishAreaSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/FishAreaSymbol'\nimport { shipAccidentSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/ShipAccidentSymbol'\nimport { terminatorSymbol } from '@map-sdk/sdk/plugins/AreaView/layer/TerminatorSymbol'\nimport type { MyMap } from '@map-sdk/sdk/ShipxyAPISDK'\n\nexport interface AreaViewSymbolOptions {\n  gsea_url: string\n  typ_url: string\n  ctyp_url: string\n  eez_url: string\n  time_url: string\n  seamap_url: string\n  bline_url: string\n  bline12_url: string\n  bline24_url: string\n  isShowName: boolean\n}\n\ninterface LayerWithShowArea {\n  showArea: () => void\n  hideArea: () => void\n}\n\ninterface LayerWithoutShowArea {\n  _isView: boolean\n}\n\ntype AreaLayer = LayerWithShowArea | LayerWithoutShowArea | L.Layer\n\nclass AreaViewSymbol {\n  public options: AreaViewSymbolOptions\n  protected _map: MyMap\n  protected _areaLayer: { [key: string]: AreaLayer }\n\n  constructor(map: MyMap, option?: Partial<AreaViewSymbolOptions>) {\n    this.options = {\n      gsea_url: '',\n      typ_url: '',\n      ctyp_url: '',\n      eez_url: '',\n      time_url: '',\n      seamap_url: '',\n      bline_url: '',\n      bline12_url: '',\n      bline24_url: '',\n      isShowName: true,\n    }\n\n    L.Util.extend(this.options, ShipxyOptions.areaViewSymbol, option)\n    this._map = map\n    this._areaLayer = {}\n  }\n\n  /**\n   * 显示，全球海区\n   */\n  showArea(type: string, data?: any): this {\n    if (type) {\n      if (!(type in this._areaLayer)) {\n        this._areaLayer[type] = this._createArea(type, data)\n      }\n      const areaLayerType = this._areaLayer[type] as LayerWithShowArea\n      if (areaLayerType?.showArea) {\n        areaLayerType.showArea()\n      }\n    }\n\n    return this\n  }\n\n  hasView(): boolean {\n    for (const i in this._areaLayer) {\n      const areaLayerItem = this._areaLayer[i] as LayerWithoutShowArea\n      if (areaLayerItem?._isView) {\n        return true\n      }\n    }\n    return false\n  }\n\n  /**\n   * 隐藏，全球海区\n   */\n  hideArea(type?: string): this {\n    if (type) {\n      if (type in this._areaLayer) {\n        this.areaLayerType(type)\n      }\n    } else {\n      for (const key in this._areaLayer) {\n        this.areaLayerType(key)\n      }\n    }\n\n    return this\n  }\n\n  private areaLayerType(key: string) {\n    const areaLayerItem = this._areaLayer[key] as LayerWithShowArea &\n      LayerWithoutShowArea &\n      L.Layer\n    if (areaLayerItem?.hideArea) {\n      areaLayerItem.hideArea()\n    } else if (areaLayerItem) {\n      areaLayerItem._isView = false\n      this._map.removeLayer(areaLayerItem)\n    }\n  }\n\n  private _createArea(type: string, data?: any): AreaLayer {\n    let layer!: AreaLayer\n\n    switch (type) {\n      // 全球海区\n      case 'GSEA':\n        layer = globalSeaAreaSymbol(this._map, {\n          ...this.options,\n          url: this.options.gsea_url,\n        }) as AreaLayer\n        break\n      // 排放控制区\n      case 'TYP':\n        layer = dischargeAreaSymbol(this._map, {\n          ...this.options,\n          url: this.options.typ_url,\n        }) as AreaLayer\n        break\n      // 排放控制区(中国\n      case 'CTYP':\n        layer = chinaDischargeAreaSymbol(this._map, {\n          ...this.options,\n          url: this.options.ctyp_url,\n        }) as AreaLayer\n        break\n      // 专属经济区\n      case 'EEZ':\n        layer = exclusiveEconomicZoneSymbol(this._map, {\n          ...this.options,\n          url: this.options.eez_url,\n          value: data,\n        }) as AreaLayer\n        break\n      // 时区\n      case 'TIME':\n        layer = timeZoneSymbol(this._map, {\n          ...this.options,\n          url: this.options.time_url,\n        }) as AreaLayer\n        break\n      // 临海基线\n      case 'BLINE':\n        layer = baselinesAtSeaSymbol(this._map, {\n          ...this.options,\n          url: this.options.bline_url,\n          minzoom: 3,\n          maxzoom: 18,\n        }) as AreaLayer\n        break\n      case 'BLINE12':\n        layer = baselinesAtSeaSymbol(this._map, {\n          ...this.options,\n          url: this.options.bline12_url,\n          minzoom: 3,\n          maxzoom: 18,\n        }) as AreaLayer\n        break\n      case 'BLINE24':\n        layer = baselinesAtSeaSymbol(this._map, {\n          ...this.options,\n          url: this.options.bline24_url,\n          minzoom: 3,\n          maxzoom: 18,\n          colors: ['green', 'orange'],\n        }) as AreaLayer\n        break\n      case 'SEAUB':\n        layer = seaMapToolSymbol(this._map, {\n          ...this.options,\n          minzoom: 1,\n          maxzoom: 18,\n          url: this.options.seamap_url,\n        }) as AreaLayer\n        break\n      // 全球海峡\n      case 'QQHX':\n        layer = elaneStraitSymbol(this._map) as AreaLayer\n        break\n      // 沿海航路\n      case 'SEA_ROUTE':\n        layer = seaRouteSymbol(this._map) as AreaLayer\n        break\n      // 渔区便捷\n      case 'FISHERY_MANAGER':\n        layer = fisheryManagerSymbol(this._map) as AreaLayer\n        break\n      // 海区地震\n      case 'EARTH_QUAKE':\n        layer = earthQuakeAreaSymbol(this._map) as AreaLayer\n        break\n      // 海盗事件\n      case 'PIRATE':\n        layer = pirateSymbol(this._map) as AreaLayer\n        break\n      //碰撞高风险区\n      case 'COLLISION_RISK':\n        layer = collisionRiskSymbol(this._map, {\n          type: 'collisionRisk',\n        }) as AreaLayer\n        break\n      //碍航网具\n      case 'OBSTACLEAREA':\n        layer = collisionRiskSymbol(this._map, {\n          type: 'obstaclearea',\n        }) as AreaLayer\n        break\n      //渔业协定水域\n      case 'FISHAREA':\n        layer = fishAreaSymbol(this._map) as AreaLayer\n        break\n      // 船舶事故\n      case 'SHIPACCIDENT':\n        layer = shipAccidentSymbol(this._map)\n        break\n      // 船舶事故\n      case 'CBTG':\n        layer = terminatorSymbol(this._map) as any\n        break\n    }\n\n    return layer\n  }\n}\n\nconst areaViewSymbol = (map: MyMap, options?: Partial<AreaViewSymbolOptions>) =>\n  new AreaViewSymbol(map, options)\n\nexport { AreaViewSymbol, areaViewSymbol }\n"],"names":["t","constructor","r","e","this","options","gsea_url","typ_url","ctyp_url","eez_url","time_url","seamap_url","bline_url","bline12_url","bline24_url","isShowName","m","Util","extend","l","areaViewSymbol","_map","_areaLayer","showArea","_createArea","a","hasView","_isView","hideArea","areaLayerType","removeLayer","A","url","n","h","p","value","_","i","minzoom","maxzoom","colors","y","b","u","c","L","S","o","type","f","w","k","g","s"],"mappings":"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"}