arcgis for js load third-party resource map

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

Special note: non-original articles on public documents from esri china

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

ArcGIS API for Javascript provides a WebTileLayer class, you can access ArcGIS for Server services by slicing back a class that accepts a pattern as

http://some.domain.com/ $ {leveL} / $ {col} / $ {row}的URL参数复制代码

Not necessarily that this model does not necessarily have to pass a URL as an argument, but with this model is similar to the current model because it is very common on the Web, where level represents a slice level, col and row level, respectively level under the columns and rows.

 WebTileLayer TiledMapServiceLayer essence is an extended class, the class is not in front of it, are to be accessed by way of some form, such as custom http://some.domain.com/ $ {leveL} / $ {col} / $ {row} service, and the emergence WebTileLayer is to accelerate the development efficiency, when in use, Gua need to WebTileLayer as a template to replace the corresponding parameter.

1, Slicing services source -TiledMapServiceLayer

TiledMapServiceLayer class is the source of all sections of the service, that I knew WMTS and ArcGISTiledMapServiceLayer VETiledLayer are to achieve access to the different sections of the service by extending this class, the class is an abstract class, subclass to another can be instantiated, but it it defines a method azimuth slice the services they need, it is necessary to understand the next class, the main attributes and methods of the class as follows. 

 主要属性
fullExtent 地图服务的范围
initialExtent 地图服务的刜始范围
spatialReference 地图服务的空间参考
tileInfo 瓦片信息,该类包吨切片的结构 复制代码

主要方法
getTileUrl 获取每一个切片的url,返个方法是当移动地图,放大缩小的时候会触发,
然后获取每一个切片的url并获取图片进行显示 复制代码

2, world map

World map is the National Mapping Agency October 21, 2010 announced the opening of a Chinese public version of the National Geographic Information Public Service Platform, the world map as the most comprehensive Chinese data in the area of ​​geographic information service platform, will provide the public authority, credibility unified geographic information services, geographic information services to build Internet brand in China.

2.1 Example

Through inheritance TiledMapServiceLayer to achieve access to the world map, you can directly modify the information in WebTileLayer

 

dojo.declare("WebTileLayer", esri.layers.TiledMapServiceLayer, { 
                constructor: function () { 
                    this.spatialReference = new esri.SpatialReference({ wkid: 4326 }); 
                    this.initialExtent = (this.fullExtent = new esri.geometry.Extent(-180.0, 
-90.0, 180.0, 90.0, this.spatialReference)); 
 
                    this.tileInfo = new esri.layers.TileInfo({ 
                        "rows": 256, 
                        "cols": 256, 
                        "compressionQuality": 0, 
                        "origin": { 
                            "x": -180, 
                            "y": 90 
                        }, 
                        "spatialReference": { 
                            "wkid": 4326 
                        }, 
                        "lods": [ 
              { "level": 0, "resolution": 0.703125, "scale": 295497593.05875003 }, 
              { "level": 1, "resolution": 0.3515625, "scale": 147748796.52937502 }, 
              { "level": 2, "resolution": 0.17578125, "scale": 73874398.264687508 }, 
              { "level": 3, "resolution": 0.087890625, "scale": 36937199.132343754 }, 
              { "level": 4, "resolution": 0.0439453125, "scale": 18468599.566171877 }, 
              { "level": 5, "resolution": 0.02197265625, "scale": 9234299.7830859385 }, 
              { "level": 6, "resolution": 0.010986328125, "scale": 4617149.8915429693 }, 
              { "level": 7, "resolution": 0.0054931640625, "scale": 2308574.9457714846 }, 
              { "level": 8, "resolution": 0.00274658203125, "scale": 1154287.4728857423 }, 
              { "level": 9, "resolution": 0.001373291015625, "scale": 577143.73644287116 }, 
              { "level": 10, "resolution": 0.0006866455078125, "scale": 288571.86822143558 }, 
              { "level": 11, "resolution": 0.00034332275390625, "scale": 
144285.93411071779 }, 
              { "level": 12, "resolution": 0.000171661376953125, "scale": 

 
177 
 
72142.967055358895 }, 
              { "level": 13, "resolution": 8.58306884765625e-005, "scale": 
36071.483527679447 }, 
              { "level": 14, "resolution": 4.291534423828125e-005, "scale": 
18035.741763839724 }, 
              { "level": 15, "resolution": 2.1457672119140625e-005, "scale": 
9017.8708819198619 }, 
              { "level": 16, "resolution": 1.0728836059570313e-005, "scale": 
4508.9354409599309 }, 
              { "level": 17, "resolution": 5.3644180297851563e-006, "scale": 
2254.4677204799655 } 
            ] 
                    }); 
 
                    this.loaded = true; 
                    this.onLoad(this); 
                }, 
 
                getTileUrl: function (level, row, col) { 
                    var levelMap = ""; 
                    if (level < 10) { 
                        levelMap = "A0512_EMap"; 
                    } else if (level < 12) { 
                        levelMap = "B0627_EMap1112"; 
                    } else if (level < 17) { 
                        levelMap = "siwei0608"; 
                    } 
                    return "http://tile0.tianditu.com/DataServer?T=" + levelMap + "&" + 
                                          "X=" + col + "&" + 
                  "Y=" + row + "&" + 
                  "L=" + (level * 1 + 1); 
 
                } 
            });  复制代码

2.2, load world map

var tianditu = new WebTileLayer();
map.addLayer(tianditu); 复制代码

2.3, show results



3, Baidu map

In the Baidu map, the user can query the location streets, shopping malls, real estate, poi can also find information on all the nearest restaurants, schools, banks, parks and so on. You can be extended by a layer arcgis for js access Baidu map.

3.1 Example

 dojo.declare("BaiduLayer", esri.layers.TiledMapServiceLayer, { 
            constructor: function () { 
                this.spatialReference = new esri.SpatialReference({ 
                    wkid: 102113 
                }); 
                this.initialExtent = (this.fullExtent = new 
esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, 

 
181 
 
this.spatialReference)); 
 
                this.tileInfo = new esri.layers.TileInfo({ 
                    "rows": 256, 
                    "cols": 256, 
                    "compressionQuality": 0, 
                    "origin": { 
                        "x": -20037508.342787, 
                        "y": 20037508.342787 
                    }, 
                    "spatialReference": { 
                        "wkid": 102113 
                    }, 
 
                    "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, 

 
182 
 
                        "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 

 
183 
 
                    }, { 
                        "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 
                    }] 
                }); 
 
                this.loaded = true; 
                this.onLoad(this); 
            }, 
 
            getTileUrl: function (level, row, col) { 
                var zoom = level - 1; 
                var offsetX = Math.pow(2, zoom); 
                var offsetY = offsetX - 1; 
                var numX = col - offsetX; 
                var numY = (-row) + offsetY; 
                zoom = level + 1; 
                var num = (col + row) % 8 + 1; 
 
                var url = "http://q3.baidu.com/it/u=x=" + numX + ";y=" + numY + ";z=" + zoom 

 
184 
 
+ ";v=015;type=web&fm=44"; 
                return url; 
 
            }         });     复制代码

3.1 shows the effect of



Reproduced in: https: //juejin.im/post/5cf09b8af265da1bc5524966

Guess you like

Origin blog.csdn.net/weixin_34195364/article/details/91478002