ArcGIS使用(二)ArcGIS加載天地圖

ArcGIS引入天地圖作爲底圖:

1.引入這兩個類:WebTileLayer 和 TileInfo

"esri/layers/WebTileLayer",
"esri/layers/support/TileInfo",
require([
    "esri/Map",
    "esri/layers/WebTileLayer",
    'esri/layers/support/TileInfo',
    'esri/views/MapView',
    'dojo/domReady!'
], function (Map, WebTileLayer, TileInfo, MapView) {

2.設置服務地址和tk

var tiandituBaseUrl = "http://{subDomain}.tianditu.com"; //天地圖服務地址
var token = "174705aebfe31b79b3587279e211cb9a"; //天地圖token

設定瓦片信息:

var tileInfo = new TileInfo({
    dpi: 90.71428571427429,
    rows: 256,
    cols: 256,
    compressionQuality: 0,
    origin: {
        x: -180,
        y: 90
    },
    spatialReference: {
        wkid: 4326
    },
    lods: [  //定義平鋪方案的細節級別數組
        {level: 2, levelValue: 2, resolution: 0.3515625, scale: 147748796.52937502},
        {level: 3, levelValue: 3, resolution: 0.17578125, scale: 73874398.264687508},
        {level: 4, levelValue: 4, resolution: 0.087890625, scale: 36937199.132343754},
        {level: 5, levelValue: 5, resolution: 0.0439453125, scale: 18468599.566171877},
        {level: 6, levelValue: 6, resolution: 0.02197265625, scale: 9234299.7830859385},
        {level: 7, levelValue: 7, resolution: 0.010986328125, scale: 4617149.8915429693},
        {level: 8, levelValue: 8, resolution: 0.0054931640625, scale: 2308574.9457714846},
        {level: 9, levelValue: 9, resolution: 0.00274658203125, scale: 1154287.4728857423},
        {level: 10, levelValue: 10, resolution: 0.001373291015625, scale: 577143.73644287116},
        {level: 11, levelValue: 11, resolution: 0.0006866455078125, scale: 288571.86822143558},
        {level: 12, levelValue: 12, resolution: 0.00034332275390625, scale: 144285.93411071779},
        {level: 13, levelValue: 13, resolution: 0.000171661376953125, scale: 72142.967055358895},
        {level: 14, levelValue: 14, resolution: 8.58306884765625e-005, scale: 36071.483527679447},
        {level: 15, levelValue: 15, resolution: 4.291534423828125e-005, scale: 18035.741763839724},
        {level: 16, levelValue: 16, resolution: 2.1457672119140625e-005, scale: 9017.8708819198619},
        {level: 17, levelValue: 17, resolution: 1.0728836059570313e-005, scale: 4508.9354409599309},
        {level: 18, levelValue: 18, resolution: 5.3644180297851563e-006, scale: 2254.4677204799655},
        {level: 19, levelValue: 19, resolution: 2.68220901489257815e-006, scale: 1127.23386023998275},
        {level: 20, levelValue: 2, resolution: 1.341104507446289075e-006, scale: 563.616930119991375}
    ]
})
//地圖(經緯度)
var tiledLayer = new WebTileLayer({
    urlTemplate: tiandituBaseUrl + "/DataServer?T=img_c&x={col}&y={row}&l={level}&tk=" + token,
    subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
    tileInfo: tileInfo
});
//註記(經緯度)
var tiledLayerAnno = new WebTileLayer({
    urlTemplate: tiandituBaseUrl + "/DataServer?T=cia_c&x={col}&y={row}&l={level}&tk=" + token,
    subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
    tileInfo: tileInfo
});
vec_c, 行政區劃圖
cva_c,行政區劃圖文字標註
img_c, 影像底圖
cia_c, 影像地圖,文字標註
ter_c, 地形圖
cta_c, 地形圖,文字標註

       加載地圖時:使用了 {subsDomain},{col},{row},{level}分別替換服務器列表,瓦片列編號,瓦片行編號,當前縮放級別;

http://{subDomain}.tianditu.com/DataServer?T=vec_c&x={col}&y={row}&l={level}&tk=" + token

http://t4.tianditu.com/DataServer?T=vec_c&x=27&y=3&l=5$tk=174705aebfe31b79b3587279e211cb9a

      天地圖瓦片可用子域有八個:

subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],

    創建地圖,不設置底圖:加載天地圖,需要設置map、mapview的wkid爲4326

// 創建地圖,不設置底圖,如果設置底圖會造成座標系無法被轉換成 ESPG:4326 (WGS1984)
var map = new Map({
    spatialReference: { wkid: 4326  },
    basemap: {  baseLayers: [tiledLayer, tiledLayerAnno]}
});
var view = new MapView({
    container: "viewDiv",
    spatialReference: {  wkid: 4326 },
    map: map,
   center:[118.183013,39.638808],
   zoom:5,
   scale: 2000000
});

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

高版本好像不用那麼麻煩了:直接就能用(4.15):

//引入天地圖底圖
var tiledLayer = new WebTileLayer({
    urlTemplate:
        "http://{subDomain}.tianditu.gov.cn/DataServer?T=vec_w&x={col}&y={row}&l={level}&tk=174705aebfe31b79b3587279e211cb9a",
    subDomains: ["t0", "t1", "t2", "t3","t4", "t5", "t6", "t7"],
});
var tiledLayer_wz = new WebTileLayer({
    urlTemplate:
        "http://{subDomain}.tianditu.gov.cn/DataServer?T=cva_w&x={col}&y={row}&l={level}&tk=174705aebfe31b79b3587279e211cb9a",
    subDomains: ["t0", "t1", "t2", "t3","t4", "t5", "t6", "t7"],
});

var map = new Map({
    basemap: {  baseLayers: [tiledLayer,tiledLayer_wz]}
});
var view = new MapView({
    container: "viewDiv",
    map: map,
    center:[118.183013,39.638808],
    zoom:11
});

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章