arcgis 加載高德地圖 es6的方式


目前很多arcgis 加載高德地圖是dojo的方式 外部引入文件,現在改成這種方式

 

/**
 * Created by Administrator on 2018/5/14 0014.
 */


import * as esriLoader from 'esri-loader'

export const gaodeLayer  = {}

gaodeLayer.create  = function (map) {


  esriLoader.dojoRequire(["dojo/_base/declare",
      "esri/geometry/Extent",
      "esri/SpatialReference",
      "esri/geometry/Point",
      "esri/layers/TileInfo",
      "esri/layers/TiledMapServiceLayer"],
    function (declare,
              Extent,
              SpatialReference,
              Point,
              TileInfo,
              TiledMapServiceLayer) {

       declare("GaoDeLayer", TiledMapServiceLayer, {
        name: "GaoDeLayer",

        // 構造函數
        constructor: function (args) {
          // 這里使用坐標系為投影坐標系WGS_1984_Web_Mercator_Auxiliary_Sphere(wkid: 3857)
          this.spatialReference = new SpatialReference({
            wkid: 3857
          });
          // 圖層提供的起始顯示范圍和整個圖層的地理范圍
          this.fullExtent = new Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
          this.initialExtent = this.fullExtent;
          this.tileInfo = new TileInfo({
            "cols": 256,
            "rows": 256,
            "compressionQuality": 0,
            "origin": new Point(-20037508.342787, 20037508.342787, this.spatialReference),
            "spatialReference": this.spatialReference,
            "lods": [
              {"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},

            ]
          });
          // 設置圖層的loaded屬性,並觸發onLoad事件
          this.loaded = true;
          this.onLoad(this);

        },

        getTileUrl: function (level, row, col) {
          let url = 'http://webrd0' + (col % 4 + 1) + '.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x=' + col + '&y=' + row + '&z=' + level;
          return url;
        }
      });


      function loadLayer(map) {
        let  gaoLayer = new GaoDeLayer();
        map.addLayer(gaoLayer);

      }
      loadLayer(map);

    });


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM