{"version":3,"file":"ElaneStraitSymbol.mjs","sources":["../../../../../../../packages/sdk/plugins/AreaView/layer/ElaneStraitSymbol.ts"],"sourcesContent":["import * as L from 'leaflet'\nimport { CanvasShipUtils } from '@map-sdk/sdk/utils/CanvasShipUtils'\nimport { CommUtils } from '@map-sdk/sdk/utils/CommUtils'\nimport { AreaViewBase } from '@map-sdk/sdk/plugins/AreaView/AreaViewBase'\nimport type { AreaViewBaseOptions } from '@map-sdk/sdk/plugins/AreaView/AreaViewBase'\nimport type { MyMap } from '@map-sdk/sdk/ShipxyAPISDK'\n\ninterface ElaneStraitDataItem {\n  points: [number, number][]\n  cname: string\n  ename: string\n}\n\n/**\n * 全球海峡\n */\nclass ElaneStraitSymbol extends AreaViewBase {\n  layerHash: any = {}\n  layerHashName: any = {}\n  _tempAreaArray: any = []\n  _zoomend = false\n  lyGroup!: L.LayerGroup | null\n  constructor(map: MyMap, options?: Partial<AreaViewBaseOptions> | undefined) {\n    super(map, options)\n    this._data = [\n      {\n        cname: '曼德海峡',\n        ename: 'BAB EL MANDEB STRAIT',\n        points: [\n          [43.05, 12.45],\n          [43.67, 12.94],\n        ],\n      },\n      {\n        cname: '托雷斯海峡',\n        ename: 'TORRES STRAIT',\n        points: [\n          [142.5, -10.8],\n          [143, -9],\n        ],\n      },\n      {\n        cname: '白令海峡',\n        ename: 'BERING STRAIT',\n        points: [\n          [-170, 66],\n          [-167, 66],\n        ],\n      },\n      {\n        cname: '霍尔木兹海峡',\n        ename: 'HORMUZ STRAIT',\n        points: [\n          [56.3, 26.1],\n          [56.6, 27.3],\n        ],\n      },\n      {\n        cname: '喀拉海峡',\n        ename: 'KARA STRAIT',\n        points: [\n          [56, 70.8],\n          [59, 70.2],\n        ],\n      },\n      {\n        cname: '朝鲜海峡',\n        ename: 'KOREA STRAIT',\n        points: [\n          [127.2, 34.6],\n          [129.5, 33.3],\n        ],\n      },\n      {\n        cname: '望加锡海峡',\n        ename: 'MAKASSAR STRAIT',\n        points: [\n          [116.9, -1],\n          [119.7, -1],\n        ],\n      },\n      {\n        cname: '马六甲海峡',\n        ename: 'MALACCA STRAIT',\n        points: [\n          [101, 1],\n          [101, 4],\n        ],\n      },\n      {\n        cname: '保克海峡',\n        ename: 'PALK STRAIT',\n        points: [\n          [78, 9.5],\n          [80.2, 9.5],\n        ],\n      },\n      {\n        cname: '琼州海峡',\n        ename: 'QIONGZHOU STRAIT',\n        points: [\n          [110.2, 20],\n          [110.2, 20.3],\n        ],\n      },\n      {\n        cname: '新加坡海峡',\n        ename: 'STRAIT OF SINGAPORE',\n        points: [\n          [104, 1.1],\n          [104, 1.35],\n        ],\n      },\n      {\n        cname: '台湾海峡',\n        ename: 'TAIWAN STRAIT',\n        points: [\n          [118.5, 25.6],\n          [121.2, 24.75],\n        ],\n      },\n      {\n        cname: '津轻海峡',\n        ename: 'TSUGARU STRAIT',\n        points: [\n          [140.4, 41.2],\n          [140.4, 41.6],\n        ],\n      },\n      {\n        cname: '巽他海峡',\n        ename: 'SUNDA STRAIT',\n        points: [\n          [105.6, -6.7],\n          [105.1, -5.6],\n        ],\n      },\n      {\n        cname: '龙目海峡',\n        ename: 'LOMBOK STRAIT',\n        points: [\n          [115.4, -8.4],\n          [116.2, -8.4],\n        ],\n      },\n      {\n        cname: '宫古海峡',\n        ename: 'MIYAKO STRAIT',\n        points: [\n          [125.4, 24.8],\n          [127.6, 26.1],\n        ],\n      },\n      {\n        cname: '根室海峡',\n        ename: 'NEMURO STRAIT',\n        points: [\n          [145.21, 44.1],\n          [145.77, 44.1],\n        ],\n      },\n      {\n        cname: '宗谷海峡',\n        ename: 'SOYA KAIKYO',\n        points: [\n          [142, 45.5],\n          [142, 45.9],\n        ],\n      },\n      {\n        cname: '对马海峡',\n        ename: 'TSUSHIMA STRAIT',\n        points: [\n          [129.7, 33.8],\n          [129.25, 34.15],\n        ],\n      },\n\n      {\n        cname: '达达尼尔海峡',\n        ename: 'DARDANELLES STRAIT',\n        points: [\n          [26.4, 40.3],\n          [26.61, 40.15],\n        ],\n      },\n      {\n        cname: '戴维斯海峡',\n        ename: 'DAVIS STRAIT',\n        points: [\n          [-63.13, 66.9],\n          [-51, 68],\n        ],\n      },\n      {\n        cname: '丹麦海峡',\n        ename: 'DENMARK STRAIT',\n        points: [\n          [-37, 69],\n          [-22.8, 66.4],\n        ],\n      },\n      {\n        cname: '加来海峡',\n        ename: 'DOVER STRAIT',\n        points: [\n          [1.15, 52.27],\n          [3.6, 51.18],\n        ],\n      },\n      {\n        cname: '刻赤海峡',\n        ename: 'KERCH STRAIT',\n        points: [\n          [36.3, 45.2],\n          [36.8, 45.2],\n        ],\n      },\n      {\n        cname: '斯卡格拉克海峡',\n        ename: 'SKAGERRAK STRAIT',\n        points: [\n          [9, 57.06],\n          [9, 58.4],\n        ],\n      },\n      {\n        cname: '大贝尔特海峡',\n        ename: 'GREATER BEIT STRAIT',\n        points: [\n          [10.7, 55.48],\n          [11.16, 55.52],\n        ],\n      },\n      {\n        cname: '卡特加特海峡',\n        ename: 'KATTEGAT STRAIT',\n        points: [\n          [10.5, 57.1],\n          [11.9, 57.2],\n        ],\n      },\n      {\n        cname: '厄勒海峡',\n        ename: 'ORESUND STRAIT',\n        points: [\n          [12.69, 55.6],\n          [12.86, 55.56],\n        ],\n      },\n      {\n        cname: '英吉利海峡',\n        ename: 'ENGLISH CHANNEL',\n        points: [\n          [-2.12, 49.76],\n          [-2.12, 50.59],\n        ],\n      },\n      {\n        cname: '布里斯托尔海峡',\n        ename: 'BRISTOL CHANNEL',\n        points: [\n          [-4.2, 51.15],\n          [-4.2, 51.6],\n        ],\n      },\n      {\n        cname: '科林斯运河',\n        ename: 'CORINTH CANAL',\n        points: [\n          [23, 37.9],\n          [23, 37.95],\n        ],\n      },\n      {\n        cname: '麦哲伦海峡',\n        ename: 'MAGELLAN STRAIT',\n        points: [\n          [-71, -53.05],\n          [-70.4, -53.05],\n        ],\n      },\n      {\n        cname: '布兰斯菲尔德海峡',\n        ename: 'BRANSFIELD STRAIT',\n        points: [\n          [-60.2, -64],\n          [-60.2, -62.5],\n        ],\n      },\n      {\n        cname: '德雷克海峡',\n        ename: 'DRAKE PASSAGE',\n        points: [\n          [-62, -63],\n          [-67.3, -55.9],\n        ],\n      },\n      {\n        cname: '莫桑比克海峡',\n        ename: 'MOZAMBIQUE CHANNEL',\n        points: [\n          [38.8, -15.4],\n          [45, -17.7],\n        ],\n      },\n      {\n        cname: '好望角',\n        ename: 'CAPE OF GOOD HOPE',\n        points: [\n          [18.44, -36],\n          [18.44, -34.3],\n        ],\n      },\n      {\n        cname: '巴斯海峡',\n        ename: 'BASS STRAIT',\n        points: [\n          [146.33, -41.2],\n          [146.33, -38.5],\n        ],\n      },\n      {\n        cname: '库克海峡',\n        ename: 'COOK STRAIT',\n        points: [\n          [174, -41.5],\n          [174.9, -41.5],\n        ],\n      },\n      {\n        cname: '迪克森海峡',\n        ename: 'DIXON ENTRANCE',\n        points: [\n          [-132.05, 54],\n          [-132.05, 54.75],\n        ],\n      },\n      {\n        cname: '佛罗里达海峡',\n        ename: 'FLORIDA STRAIT',\n        points: [\n          [-80.8, 23],\n          [-80.8, 25.4],\n        ],\n      },\n      {\n        cname: '哈得逊海峡',\n        ename: 'HUDSON STRAIT',\n        points: [\n          [-73.7, 62],\n          [-73.7, 65],\n        ],\n      },\n      {\n        cname: '马基纳克海峡',\n        ename: 'MACKINAC STRAIT',\n        points: [\n          [-84.75, 45.75],\n          [-84.75, 45.86],\n        ],\n      },\n      {\n        cname: '贝尔岛海峡',\n        ename: 'STRAIT OF BELLE ISLE',\n        points: [\n          [-56.3, 51.3],\n          [-56.3, 52],\n        ],\n      },\n      {\n        cname: '乔治亚海峡',\n        ename: 'STRAIT OF GEORGIA',\n        points: [\n          [-124.4, 49.35],\n          [-123.9, 49.5],\n        ],\n      },\n      {\n        cname: '胡安德富卡海峡',\n        ename: 'STRAIT OF JUAN DE FUCA',\n        points: [\n          [-124, 48.1],\n          [-124, 48.5],\n        ],\n      },\n      {\n        cname: '向风海峡',\n        ename: 'WINDWARD PASSAGE',\n        points: [\n          [-74.2, 20.1],\n          [-73.45, 19.75],\n        ],\n      },\n      {\n        cname: '尤卡坦海峡',\n        ename: 'YUCATAN CHANNEL',\n        points: [\n          [-86.7, 21.4],\n          [-85, 21.9],\n        ],\n      },\n      {\n        cname: '圣劳伦斯河',\n        ename: 'ST. LAWRENCE RIVER CHANNEL',\n        points: [\n          [-66.6, 48.7],\n          [-67.6, 50],\n        ],\n      },\n      {\n        cname: '赫卡特海峡',\n        ename: 'HECATE STRAIT',\n        points: [\n          [-132, 53],\n          [-130, 53.7],\n        ],\n      },\n      { cname: '大隅海峡', ename: '', points: [[130.737, 30.865]] },\n      { cname: '巴士海峡', ename: '', points: [[121.465, 21.187]] },\n      { cname: '民都洛海峡', ename: '', points: [[120.443, 12.533]] },\n      { cname: '巴拉巴克海峡', ename: '', points: [[117.241, 7.727]] },\n      { cname: '巴拿马运河', ename: '', points: [[-79.572, 8.96]] },\n      { cname: '卡里马塔海峡', ename: '', points: [[109.204, -2.482]] },\n      { cname: '维蒂亚兹海峡', ename: '', points: [[147.722, -5.9]] },\n      { cname: '马鲁古海峡', ename: '', points: [[126.2, 1.143]] },\n      { cname: '德朗海峡', ename: '', points: [[178.945, 70.11]] },\n      { cname: '维利基茨基海峡', ename: '', points: [[104.326, 77.888]] },\n      { cname: '莱斯岛海峡', ename: '', points: [[11.151, 57.404]] },\n      { cname: '巴林塘海峡', ename: '', points: [[121.995, 19.756]] },\n      { cname: '吕宋海峡', ename: '', points: [[121.959, 20.172]] },\n      { cname: '苏伊士运河', ename: '', points: [[32.552, 29.934]] },\n      {\n        cname: '直布罗陀海峡',\n        ename: 'GIBRALTAR STRAIT',\n        points: [[-5.601, 35.961]],\n      },\n      { cname: '梅奈海峡', ename: 'MENAI STRAIT', points: [[-4.257, 53.169]] },\n      { cname: '基尔运河', ename: 'KIEL CANAL', points: [[9.693, 54.297]] },\n      {\n        cname: '墨西拿海峡',\n        ename: 'MESSINA STRAIT',\n        points: [[15.591, 38.145]],\n      },\n      { cname: '鞑靼海峡', ename: 'TATAR STRAIT', points: [[141.553, 52.098]] },\n      {\n        cname: '博斯普鲁斯海峡',\n        ename: 'BOSPHORUS STRAIT',\n        points: [[29.061, 41.085]],\n      },\n    ]\n    this._polyNameChange()\n    this._map.setView({ lat: 6.533345003111799, lng: 87.89062500000001 }, 3)\n  }\n\n  _show(): this {\n    if (!this._data) {\n      console.error('全球海峡展示，请求无数据！')\n      return this\n    }\n    this._data.forEach((item: ElaneStraitDataItem) => this.draw(item))\n    return this\n  }\n\n  _polyNameChange() {\n    this._map.on('zoomend', () => {\n      this._zoomend = true\n    })\n\n    this._map.on('moveend', () => {\n      this._tempAreaArray = []\n      for (const item in this.layerHash) {\n        const ly = this.layerHashName[item]\n        if (ly) {\n          this._map.removeLayer(ly)\n          delete this.layerHashName[item]\n        }\n      }\n\n      for (const item in this.layerHash) {\n        const layer = this._showName(this.layerHash[item], item)\n\n        const isIntersects = (layer: { getBounds: () => any }) => {\n          let res = false\n          const layers = Object.values(this.layerHashName) as any\n          for (const layer_ of layers) {\n            if (layer_.getBounds().intersects(layer.getBounds())) {\n              res = true\n              break\n            }\n          }\n          return res\n        }\n        if (layer && !isIntersects(layer)) {\n          this.layerHashName[item] = layer\n          //缩放延迟执行添加\n          if (!this._zoomend)\n            this.layerHashName[item] &&\n              this._map.addLayer(this.layerHashName[item])\n          else {\n            this._tempAreaArray.push(this.layerHashName[item])\n          }\n        }\n      }\n\n      //延迟绘制\n      setTimeout(() => {\n        this._tempAreaArray.forEach((item: L.Layer) => {\n          item && this._map.addLayer(item)\n        })\n      }, 0)\n      this._zoomend = false\n    })\n  }\n\n  draw(o: ElaneStraitDataItem) {\n    if (!this.lyGroup) {\n      this.lyGroup = L.layerGroup().addTo(this._map)\n    }\n    const { points, cname } = o\n\n    //绘制线段 多段绘制\n    points.forEach((p, i) => {\n      const next = points[i + 1]\n      let p1, next1, center\n      if (points.length == 1) {\n        p1 = L.latLng(p[1], p[0])\n        p1 = CanvasShipUtils.GPSEncryptByMapToLatLng(p1, this._map)\n        center = [p1.lat, p1.lng]\n      } else if (next) {\n        p1 = L.latLng(p[1], p[0])\n        next1 = L.latLng(next[1], next[0])\n        p1 = CanvasShipUtils.GPSEncryptByMapToLatLng(p1, this._map)\n        next1 = CanvasShipUtils.GPSEncryptByMapToLatLng(next1, this._map)\n        center = [(p1.lat + next1.lat) / 2, (p1.lng + next1.lng) / 2]\n      } else {\n        center = null\n      }\n      if (center) {\n        if (cname == '白令海峡') center[1] = center[1] + 360\n        //绘制marker\n        const marker = L.circleMarker(center as any, {\n          radius: 5,\n          color: '#fff',\n          fillColor: 'red',\n          weight: 1,\n          opacity: 1,\n          fillOpacity: 1,\n        })\n        this.lyGroup && this.lyGroup.addLayer(marker)\n        this.layerHash[cname] = marker\n        const layer = this._showName(marker, cname)\n        const isIntersects = (layer: L.Polygon<any>) => {\n          let res = false\n          const layers = Object.values(this.layerHashName) as any\n          for (const layer_ of layers) {\n            if (layer_.getBounds().intersects(layer.getBounds())) {\n              res = true\n              break\n            }\n          }\n          return res\n        }\n        if (!isIntersects(layer as any)) {\n          this.layerHashName[cname] = layer\n          this._map.addLayer(this.layerHashName[cname])\n        }\n      }\n    })\n  }\n  _showName(p: L.Layer, name = '') {\n    const color = this._map.mapType != 'MT_SATELLITE' ? '#fff' : '#333'\n    return CommUtils.getFeatureLabel(p, name, {\n      offset: [8, -10],\n      attributes: {\n        fill: color,\n        xShift: 8,\n      },\n      pathOptions: {\n        fillColor: 'rgba(1,29,60,.8)',\n      },\n      map: this._map,\n    })\n  }\n  _hide() {\n    try {\n      if (this.lyGroup) {\n        this.lyGroup.clearLayers()\n        this.lyGroup = null\n      }\n\n      for (const item in this.layerHashName) {\n        if (this._map.hasLayer(this.layerHashName[item])) {\n          this._map.removeLayer(this.layerHashName[item])\n          delete this.layerHashName[item]\n        }\n      }\n\n      for (const item in this.layerHash) {\n        this._map.removeLayer(this.layerHash[item])\n        delete this.layerHash[item]\n      }\n    } catch (e) {\n      console.log(e)\n    }\n  }\n}\n\nconst elaneStraitSymbol = (\n  map: MyMap,\n  options?: Partial<AreaViewBaseOptions>\n) => new ElaneStraitSymbol(map, options)\n\nexport { ElaneStraitSymbol, elaneStraitSymbol }\n"],"names":["y","L","constructor","e","a","super","this","layerHash","layerHashName","_tempAreaArray","_zoomend","_data","cname","ename","points","_polyNameChange","_map","setView","lat","lng","_show","forEach","draw","on","removeLayer","_showName","m","p","i","Object","values","n","getBounds","intersects","push","addLayer","setTimeout","lyGroup","r","layerGroup","addTo","t","o","s","length","latLng","c","GPSEncryptByMapToLatLng","A","circleMarker","radius","color","fillColor","weight","opacity","fillOpacity","h","I","S","R","E","mapType","N","getFeatureLabel","offset","attributes","fill","xShift","pathOptions","map","_hide","clearLayers","hasLayer","f","T","l"],"mappings":"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"}