import Map from "@arcgis/core/Map";
import MapView from "@arcgis/core/views/MapView";
import TianData from './Tmap'
import TileInfo from "@arcgis/core/layers/support/TileInfo";
import WebTileLayer from "@arcgis/core/layers/WebTileLayer";


let esri ={
   map:'',
   view:'',
}
function loadMap(){
  return new Promise((resolve, reject) => {
    let self = this;
    let tileInfo = new TileInfo(TianData.infoData);

    let defaultInfo = {
      subDomains: ["t1"],
      spatialReference: {
        wkid: 4326,
      },
      tileInfo: tileInfo,
    }
    let imageBasemapLayer = new WebTileLayer({
      ...defaultInfo,
      urlTemplate: TianData.img_c
    })
    let imageNoteLayer = new WebTileLayer({
      ...defaultInfo,
      urlTemplate: TianData.cia_c
    })


    esri.map = new Map({
      basemap: {
        baseLayers: [imageBasemapLayer, imageNoteLayer],
      },
      slider: false
    });

    let lodsView = [
      { level: 0, resolution: 156543.033928, scale: 591657527.591555 },
      { level: 1, resolution: 78271.5169639999, scale: 295828763.795777 },
      { level: 2, resolution: 39135.7584820001, scale: 147914381.897889 },
      { level: 3, resolution: 19567.8792409999, scale: 73957190.948944 },
      { level: 4, resolution: 9783.93962049996, scale: 36978595.474472 },
      { level: 5, resolution: 4891.96981024998, scale: 18489297.737236 },
      { level: 6, resolution: 2445.98490512499, scale: 9244648.868618 },
      { level: 7, resolution: 1222.99245256249, scale: 4622324.434309 },
      { level: 8, resolution: 611.49622628138, scale: 2311162.217155 },
      { level: 9, resolution: 305.748113140558, scale: 1155581.108577 },
      { level: 10, resolution: 152.874056570411, scale: 577790.554289 },
      { level: 11, resolution: 76.4370282850732, scale: 288895.277144 },
      { level: 12, resolution: 38.2185141425366, scale: 144447.638572 },
      { level: 13, resolution: 19.1092570712683, scale: 72223.819286 },
      { level: 14, resolution: 9.55462853563415, scale: 36111.909643 },
      { level: 15, resolution: 4.77731426794937, scale: 18055.954822 },
      { level: 16, resolution: 2.38865713397468, scale: 9027.977411 },
      { level: 17, resolution: 1.19432856685505, scale: 4513.988705 },
      { level: 18, resolution: 0.597164283559817, scale: 2256.994353 },
      { level: 19, resolution: 0.298582141647617, scale: 1128.497176 },
      { level: 20, resolution: 0.14929107082380833, scale: 564.248588 },
      { level: 21, resolution: 0.07464553541190416, scale: 282.124294 },
      { level: 22, resolution: 0.03732276770595208, scale: 141.062147 },
      { level: 23, resolution: 0.01866138385297604, scale: 70.5310735 },
    ]







    esri.view = new MapView({
      container: "viewDiv",
      map: esri.map,
      spatialReference: {
        wkid: 4326,
      },
      constraints: {
        lods: lodsView,
        rotationEnabled:false,
        minZoom: 0,
        maxZoom: 50
      },
      center: [116.85722842688202, 39.26485279059861],
      zoom: 15,
    });


    

     esri.view.ui.remove("zoom"); //移除
     esri.view.ui.remove("attribution"); //移除底部ESRI logo bb

     esri.view.on("click", (event) => {

      console.log(event)
      if (self.popup) {
        self.popup.remove()
      }

      self.view.hitTest(event).then((response) => {

        self.lighHight?.remove();
        if( self.ldMapActionType == 'lineAction'){
          if (response.results && response.results[0]) {

            var graphic = response.results[0].graphic;
            self.view.whenLayerView(graphic.layer).then((layerView) => {

              emitter.emit('line', graphic.attributes.data)
              self.lighHight = layerView.highlight(graphic)

            })



          }

        }

      });
    });
     //文字

     esri.view.when(e => {
   
      resolve()
    })

  })
}
export {esri,loadMap}