arcgis for js 3.x 天地图加载方法二

1.TDTLayerPlus.js

/**
 * 加载天地图,构造器不传参数type只加载地图,传参时加载注记;
 */
define(["dojo/_base/declare",'esri/config',],
    function(declare,esriConfig) {
        
        return declare(esri.layers.TiledMapServiceLayer, {            
            constructor: function(type) {
                // esriConfig.defaults.io.proxyUrl = "http://localhost:8080/Java/proxy.jsp";
                esri.config.defaults.io.alwaysUseProxy= true;
                this.spatialReference = new esri.SpatialReference({
                    wkid: 4490
                });
                this.initialExtent = (this.fullExtent = new esri.geometry.Extent(-180.0, -90.0, 180.0, 90.0, this.spatialReference));
                this._type = type;
                this.tileInfo = new esri.layers.TileInfo({
                    "rows": 256,
                    "cols": 256,
                    "compressionQuality": 0,
                    "origin": {
                        "x": -180,
                        "y": 90
                    },
                    "spatialReference": {
                        "wkid": 4490
                    },
                    "lods": [{
                            "level": 2,
                            "resolution": 0.3515625,
                            "scale": 147748796.52937502
                        },
                        {
                            "level": 3,
                            "resolution": 0.17578125,
                            "scale": 73874398.264687508
                        },
                        {
                            "level": 4,
                            "resolution": 0.087890625,
                            "scale": 36937199.132343754
                        },
                        {
                            "level": 5,
                            "resolution": 0.0439453125,
                            "scale": 18468599.566171877
                        },
                        {
                            "level": 6,
                            "resolution": 0.02197265625,
                            "scale": 9234299.7830859385
                        },
                        {
                            "level": 7,
                            "resolution": 0.010986328125,
                            "scale": 4617149.8915429693
                        },
                        {
                            "level": 8,
                            "resolution": 0.0054931640625,
                            "scale": 2308574.9457714846
                        },
                        {
                            "level": 9,
                            "resolution": 0.00274658203125,
                            "scale": 1154287.4728857423
                        },
                        {
                            "level": 10,
                            "resolution": 0.001373291015625,
                            "scale": 577143.73644287116
                        },
                        {
                            "level": 11,
                            "resolution": 0.0006866455078125,
                            "scale": 288571.86822143558
                        },
                        {
                            "level": 12,
                            "resolution": 0.00034332275390625,
                            "scale": 144285.93411071779
                        },
                        {
                            "level": 13,
                            "resolution": 0.000171661376953125,
                            "scale": 72142.967055358895
                        },
                        {
                            "level": 14,
                            "resolution": 8.58306884765625e-005,
                            "scale": 36071.483527679447
                        },
                        {
                            "level": 15,
                            "resolution": 4.291534423828125e-005,
                            "scale": 18035.741763839724
                        },
                        {
                            "level": 16,
                            "resolution": 2.1457672119140625e-005,
                            "scale": 9017.8708819198619
                        },
                        {
                            "level": 17,
                            "resolution": 1.0728836059570313e-005,
                            "scale": 4508.9354409599309
                        },
                        {
                            "level": 18,
                            "resolution": 5.3644180297851563e-006,
                            "scale": 2254.4677204799655
                        }
                    ]
                });
                this.loaded = true;
                this.onLoad(this);
            },
            getTileUrl: function(level, row, col) {
                if(this._type == "vec") { //矢量底图
                    return "http://t0.tianditu.com/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&tk=205bffc088d4b6b3c3f1373c98560741&LAYER=vec&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
                } else if(this._type == "cva") { //矢量标记
                    return "http://t0.tianditu.gov.cn/cva_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&tk=205bffc088d4b6b3c3f1373c98560741&LAYER=cva&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
                } else if(this._type == "img") { //影像底图
                    return "http://t0.tianditu.gov.cn/img_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&tk=205bffc088d4b6b3c3f1373c98560741&LAYER=img&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
                } else if(this._type == "cia") { //影像标记
                    return "http://t0.tianditu.gov.cn/cia_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&tk=205bffc088d4b6b3c3f1373c98560741&LAYER=cia&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
                }else if(this._type == "ter"){ //地形图
                    return "http://t0.tianditu.gov.cn/ter_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&tk=205bffc088d4b6b3c3f1373c98560741&LAYER=ter&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
                }else if(this._type == "cta"){ //地形注记
                    return "http://t0.tianditu.gov.cn/cta_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&tk=205bffc088d4b6b3c3f1373c98560741&LAYER=cta&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
                }else if(this._type == "sd"){ //地形注记
                    return "http://www.sdmap.gov.cn/tileservice/SDPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&tk=50b7c8ae09e88405f56148ce2623b271&LAYER=vec&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles";
                }
            }
        });
    });

html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>天地图底图加载(经纬度版本)</title>
        <link rel="stylesheet" href="https://js.arcgis.com/3.21/esri/css/esri.css">
        <script src="https://js.arcgis.com/3.21/"></script>
    </head>
    <body>
        <div id="map-container" style="width: 600px;height: 600px;"></div>
        <script type="text/javascript">
            // ==========================================
            // 测试版本:V3.11 - V3.27
            // ==========================================

            require(['esri/map',"TDTLayerPlus.js", 'dojo/domReady!'], function(EsriMap,TdtLayer) {
                // 创建地图,不设置底图,如果设置底图会造成坐标系无法被转换成 ESPG:4326 (WGS1984)
                var map = new EsriMap('map-container', {
                    center: [113, 23],
                    zoom: 10
                })
                var tdt1 = new tdLayer("vec",{id:"矢量图"})
                var tdt2 = new tdLayer("cva",{id:"矢量标记"})
                map.addLayer(tdt1);
                map.addLayer(tdt2);
                
                })
        </script>
    </body>
</html>

 

posted @ 2022-03-28 17:36  小鱼写代码的过往  阅读(651)  评论(0编辑  收藏  举报