{"version":3,"file":"LatLngGraticuleServer.mjs","sources":["../../../../../packages/sdk/plugins/LatLngGraticuleServer.ts"],"sourcesContent":["import * as L from 'leaflet'\nimport { CanvasShipUtils } from '@map-sdk/sdk/utils/CanvasShipUtils'\nimport type { MyMap } from '@map-sdk/sdk/ShipxyAPISDK'\nimport 'leaflet-graticule'\n\nexport interface OptionsLatLngGraticule extends L.GraticuleOptions {\n  showLabel: boolean\n  weight: number\n  color1: string\n  color2: string\n  fontColor1: string\n  fontColor2: string\n  dashArray: [number, number]\n  latFormatTickLabel: (value: number) => string\n  lngFormatTickLabel: (value: number) => string\n  zoomInterval: { start: number; end: number; interval: number }[]\n}\n\nclass LatLngGraticuleServer {\n  private _isView = false\n  private _options: OptionsLatLngGraticule\n  private _map: MyMap\n  private _layer: L.Layer | undefined\n\n  constructor(map: MyMap, options: Partial<OptionsLatLngGraticule> = {}) {\n    this._options = {\n      showLabel: true,\n      weight: 0.8,\n      color1: '#666',\n      color2: '#bbb',\n      fontColor1: '#333',\n      fontColor2: '#fff',\n      dashArray: [0, 0],\n      latFormatTickLabel: CanvasShipUtils.latFormatter,\n      lngFormatTickLabel: CanvasShipUtils.lngFormatter,\n      zoomInterval: [\n        { start: 2, end: 2, interval: 60 },\n        { start: 3, end: 3, interval: 30 },\n        { start: 4, end: 4, interval: 15 },\n        { start: 5, end: 5, interval: 7.5 },\n        { start: 6, end: 6, interval: 4 },\n        { start: 7, end: 7, interval: 2 },\n        { start: 8, end: 8, interval: 1 },\n        { start: 9, end: 9, interval: 0.5 },\n        { start: 10, end: 10, interval: 0.25 },\n        { start: 11, end: 11, interval: 0.125 },\n        { start: 12, end: 12, interval: 0.0625 },\n        { start: 13, end: 13, interval: 0.033333333 },\n        { start: 14, end: 14, interval: 0.016666666666 },\n        { start: 15, end: 15, interval: 0.008333333 },\n        { start: 16, end: 16, interval: 0.004166667 },\n        { start: 17, end: 17, interval: 0.002083333 },\n        { start: 18, end: 18, interval: 0.001041667 },\n      ],\n    }\n\n    Object.assign(this._options, options)\n    this._map = map\n    this._map.on('baselayerchange', () => {\n      this._hide()\n      this._draw()\n    })\n  }\n\n  public show(): this {\n    this._isView = true\n    this._hide()\n    this._draw()\n    return this\n  }\n\n  public hide(): this {\n    this._isView = false\n    this._hide()\n    return this\n  }\n\n  private _hide(): this {\n    if (this._layer) {\n      this._map.removeLayer(this._layer)\n      this._layer = undefined\n    }\n    return this\n  }\n\n  private _draw(): L.Layer | undefined {\n    if (this._isView) {\n      const overlayPane = this._map.getPane('overlayPane')\n      if (overlayPane) {\n        const isSatellite = overlayPane.dataset.mapType === 'MT_SATELLITE' // 假设 'MT_SATELLITE' 是卫星地图模式的标识符\n        if (isSatellite) {\n          this._options.color = this._options.color2 || this._options.color\n          this._options.fontColor =\n            this._options.fontColor2 || this._options.fontColor\n        } else {\n          this._options.color = this._options.color1 || this._options.color\n          this._options.fontColor =\n            this._options.fontColor1 || this._options.fontColor\n        }\n\n        // 假设 L.latlngGraticule 是一个存在并且能处理 options 参数的方法或工厂函数\n        this._layer = L.latlngGraticule(this._options).addTo(this._map)\n        return this._layer\n      }\n    }\n  }\n}\n\nconst latlngGraticuleServer = (\n  map: MyMap,\n  options?: Partial<OptionsLatLngGraticule> | undefined\n) => new LatLngGraticuleServer(map, options)\n\nexport { LatLngGraticuleServer, latlngGraticuleServer }\n"],"names":["a","constructor","t","r","this","_isView","_options","showLabel","weight","color1","color2","fontColor1","fontColor2","dashArray","latFormatTickLabel","e","latFormatter","lngFormatTickLabel","lngFormatter","zoomInterval","start","end","interval","Object","assign","_map","on","_hide","_draw","show","hide","_layer","removeLayer","getPane","dataset","mapType","color","fontColor","o","latlngGraticule","addTo","n","i"],"mappings":"mHAAyH,MAAMA,EAAE,WAAAC,CAAYC,EAAEC,EAAE,CAAE,GAAEC,KAAKC,SAAQ,EAAGD,KAAKE,SAAS,CAACC,WAAU,EAAGC,OAAO,GAAGC,OAAO,OAAOC,OAAO,OAAOC,WAAW,OAAOC,WAAW,OAAOC,UAAU,CAAC,EAAE,GAAGC,mBAAmBC,EAAEC,aAAaC,mBAAmBF,EAAEG,aAAaC,aAAa,CAAC,CAACC,MAAM,EAAEC,IAAI,EAAEC,SAAS,IAAI,CAACF,MAAM,EAAEC,IAAI,EAAEC,SAAS,IAAI,CAACF,MAAM,EAAEC,IAAI,EAAEC,SAAS,IAAI,CAACF,MAAM,EAAEC,IAAI,EAAEC,SAAS,KAAK,CAACF,MAAM,EAAEC,IAAI,EAAEC,SAAS,GAAG,CAACF,MAAM,EAAEC,IAAI,EAAEC,SAAS,GAAG,CAACF,MAAM,EAAEC,IAAI,EAAEC,SAAS,GAAG,CAACF,MAAM,EAAEC,IAAI,EAAEC,SAAS,IAAI,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,KAAK,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,MAAM,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,OAAO,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,YAAY,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,eAAe,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,YAAY,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,YAAY,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,YAAY,CAACF,MAAM,GAAGC,IAAI,GAAGC,SAAS,cAAcC,OAAOC,OAAOpB,KAAKE,SAASH,GAAGC,KAAKqB,KAAKvB,EAAEE,KAAKqB,KAAKC,GAAG,mBAAkB,KAAKtB,KAAKuB,QAAQvB,KAAKwB,UAAS,CAAC,IAAAC,GAAO,OAAOzB,KAAKC,SAAQ,EAAGD,KAAKuB,QAAQvB,KAAKwB,QAAQxB,IAAI,CAAC,IAAA0B,GAAO,OAAO1B,KAAKC,SAAQ,EAAGD,KAAKuB,QAAQvB,IAAI,CAAC,KAAAuB,GAAQ,OAAOvB,KAAK2B,SAAS3B,KAAKqB,KAAKO,YAAY5B,KAAK2B,QAAQ3B,KAAK2B,YAAO,GAAQ3B,IAAI,CAAC,KAAAwB,GAAQ,GAAGxB,KAAKC,QAAQ,CAAC,MAAMH,EAAEE,KAAKqB,KAAKQ,QAAQ,eAAe,GAAG/B,EAAE,MAA2B,iBAApBA,EAAEgC,QAAQC,SAA0B/B,KAAKE,SAAS8B,MAAMhC,KAAKE,SAASI,QAAQN,KAAKE,SAAS8B,MAAMhC,KAAKE,SAAS+B,UAAUjC,KAAKE,SAASM,YAAYR,KAAKE,SAAS+B,YAAYjC,KAAKE,SAAS8B,MAAMhC,KAAKE,SAASG,QAAQL,KAAKE,SAAS8B,MAAMhC,KAAKE,SAAS+B,UAAUjC,KAAKE,SAASK,YAAYP,KAAKE,SAAS+B,WAAWjC,KAAK2B,OAAOO,EAAEC,gBAAgBnC,KAAKE,UAAUkC,MAAMpC,KAAKqB,MAAMrB,KAAK2B,MAAM,CAAC,EAAO,MAACU,EAAE,CAACC,EAAExC,IAAI,IAAIF,EAAE0C,EAAExC"}