在ACRGIS Javascript中加入谷歌街道图和卫星图
首先建一个JS文件命名为googleLayer.js。其内容为:
//定义 google 图层
function defineClassesBeforInitMap() {
dojo.declare("GoogleMapLayer", esri.layers.TiledMapServiceLayer, {
constructor: function () {
this.spatialReference = new esri.SpatialReference({ wkid: 102113 });
var minpt = new esri.geometry.Point(92.17957278846418, -16.909669691616585, new esri.SpatialReference({ wkid: 4326 }));
var minptWeb = esri.geometry.geographicToWebMercator(minpt);
var maxpt = new esri.geometry.Point(140.97612918514383, 28.517045192981243, new esri.SpatialReference({ wkid: 4326 }));
var maxptWeb = esri.geometry.geographicToWebMercator(maxpt);
this.fullExtent = new esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
this.initialExtent = new esri.geometry.Extent(minptWeb.x, minptWeb.y, maxptWeb.x, maxptWeb.y, 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, "scale": 591657527.591555, "resolution": 156543.033928 },
{ "level": 1, "scale": 295828763.795777, "resolution": 78271.5169639999 },
{ "level": 2, "scale": 147914381.897889, "resolution": 39135.7584820001 },
{ "level": 3, "scale": 73957190.948944, "resolution": 19567.8792409999 },
{ "level": 4, "scale": 36978595.474472, "resolution": 9783.93962049996 },
{ "level": 5, "scale": 18489297.737236, "resolution": 4891.96981024998 },
{ "level": 6, "scale": 9244648.868618, "resolution": 2445.98490512499 },
{ "level": 7, "scale": 4622324.434309, "resolution": 1222.99245256249 },
{ "level": 8, "scale": 2311162.217155, "resolution": 611.49622628138 },
{ "level": 9, "scale": 1155581.108577, "resolution": 305.748113140558 },
{ "level": 10, "scale": 577790.554289, "resolution": 152.874056570411 },
{ "level": 11, "scale": 288895.277144, "resolution": 76.4370282850732 },
{ "level": 12, "scale": 144447.638572, "resolution": 38.2185141425366 },
{ "level": 13, "scale": 72223.819286, "resolution": 19.1092570712683 },
{ "level": 14, "scale": 36111.909643, "resolution": 9.55462853563415 },
{ "level": 15, "scale": 18055.954822, "resolution": 4.77731426794937 },
{ "level": 16, "scale": 9027.977411, "resolution": 2.38865713397468 },
{ "level": 17, "scale": 4513.988705, "resolution": 1.19432856685505 },
{ "level": 18, "scale": 2256.994353, "resolution": 0.597164283559817 },
{ "level": 19, "scale": 1128.497176, "resolution": 0.298582141647617}]
});
this.loaded = true;
this.onLoad(this);
},
getTileUrl: function (level, row, col) {
//return "images/map/hightop.png";
return "http://mt" + (col % 4) + ".google.cn/vt/lyrs=m@226000000&hl=zh-CN&gl=cn&x=" + col + "&y=" + row + "&z=" + level + "&s=Gali";
}
}); //谷歌矢量地图切片地图
dojo.declare("GoogleAnooLayer", esri.layers.TiledMapServiceLayer, {
constructor: function () {
this.spatialReference = new esri.SpatialReference({ wkid: 102113 });
var minpt = new esri.geometry.Point(92.17957278846418, -16.909669691616585, new esri.SpatialReference({ wkid: 4326 }));
var minptWeb = esri.geometry.geographicToWebMercator(minpt);
var maxpt = new esri.geometry.Point(140.97612918514383, 28.517045192981243, new esri.SpatialReference({ wkid: 4326 }));
var maxptWeb = esri.geometry.geographicToWebMercator(maxpt);
this.fullExtent = new esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
this.initialExtent = new esri.geometry.Extent(minptWeb.x, minptWeb.y, maxptWeb.x, maxptWeb.y, 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, "scale": 591657527.591555, "resolution": 156543.033928 },
{ "level": 1, "scale": 295828763.795777, "resolution": 78271.5169639999 },
{ "level": 2, "scale": 147914381.897889, "resolution": 39135.7584820001 },
{ "level": 3, "scale": 73957190.948944, "resolution": 19567.8792409999 },
{ "level": 4, "scale": 36978595.474472, "resolution": 9783.93962049996 },
{ "level": 5, "scale": 18489297.737236, "resolution": 4891.96981024998 },
{ "level": 6, "scale": 9244648.868618, "resolution": 2445.98490512499 },
{ "level": 7, "scale": 4622324.434309, "resolution": 1222.99245256249 },
{ "level": 8, "scale": 2311162.217155, "resolution": 611.49622628138 },
{ "level": 9, "scale": 1155581.108577, "resolution": 305.748113140558 },
{ "level": 10, "scale": 577790.554289, "resolution": 152.874056570411 },
{ "level": 11, "scale": 288895.277144, "resolution": 76.4370282850732 },
{ "level": 12, "scale": 144447.638572, "resolution": 38.2185141425366 },
{ "level": 13, "scale": 72223.819286, "resolution": 19.1092570712683 },
{ "level": 14, "scale": 36111.909643, "resolution": 9.55462853563415 },
{ "level": 15, "scale": 18055.954822, "resolution": 4.77731426794937 },
{ "level": 16, "scale": 9027.977411, "resolution": 2.38865713397468 },
{ "level": 17, "scale": 4513.988705, "resolution": 1.19432856685505 },
{ "level": 18, "scale": 2256.994353, "resolution": 0.597164283559817 },
{ "level": 19, "scale": 1128.497176, "resolution": 0.298582141647617}]
});
this.loaded = true;
this.onLoad(this);
},
getTileUrl: function (level, row, col) {
return "http://mt" + (col % 4) + ".google.cn/vt/lyrs=h@177000000&hl=zh-CN&gl=cn&x=" + col + "&y=" + row + "&z=" + level + "&s=";
}
}); //谷歌路网地名切片地图
dojo.declare("GoogleImageLayer", esri.layers.TiledMapServiceLayer, {
constructor: function () {
this.spatialReference = new esri.SpatialReference({ wkid: 102113 });
var minpt = new esri.geometry.Point(92.17957278846418, -16.909669691616585, new esri.SpatialReference({ wkid: 4326 }));
var minptWeb = esri.geometry.geographicToWebMercator(minpt);
var maxpt = new esri.geometry.Point(140.97612918514383, 28.517045192981243, new esri.SpatialReference({ wkid: 4326 }));
var maxptWeb = esri.geometry.geographicToWebMercator(maxpt);
this.fullExtent = new esri.geometry.Extent(-20037508.342787, -20037508.342787, 20037508.342787, 20037508.342787, this.spatialReference);
this.initialExtent = new esri.geometry.Extent(minptWeb.x, minptWeb.y, maxptWeb.x, maxptWeb.y, 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, "scale": 591657527.591555, "resolution": 156543.033928 },
{ "level": 1, "scale": 295828763.795777, "resolution": 78271.5169639999 },
{ "level": 2, "scale": 147914381.897889, "resolution": 39135.7584820001 },
{ "level": 3, "scale": 73957190.948944, "resolution": 19567.8792409999 },
{ "level": 4, "scale": 36978595.474472, "resolution": 9783.93962049996 },
{ "level": 5, "scale": 18489297.737236, "resolution": 4891.96981024998 },
{ "level": 6, "scale": 9244648.868618, "resolution": 2445.98490512499 },
{ "level": 7, "scale": 4622324.434309, "resolution": 1222.99245256249 },
{ "level": 8, "scale": 2311162.217155, "resolution": 611.49622628138 },
{ "level": 9, "scale": 1155581.108577, "resolution": 305.748113140558 },
{ "level": 10, "scale": 577790.554289, "resolution": 152.874056570411 },
{ "level": 11, "scale": 288895.277144, "resolution": 76.4370282850732 },
{ "level": 12, "scale": 144447.638572, "resolution": 38.2185141425366 },
{ "level": 13, "scale": 72223.819286, "resolution": 19.1092570712683 },
{ "level": 14, "scale": 36111.909643, "resolution": 9.55462853563415 },
{ "level": 15, "scale": 18055.954822, "resolution": 4.77731426794937 },
{ "level": 16, "scale": 9027.977411, "resolution": 2.38865713397468 },
{ "level": 17, "scale": 4513.988705, "resolution": 1.19432856685505 },
{ "level": 18, "scale": 2256.994353, "resolution": 0.597164283559817 },
{ "level": 19, "scale": 1128.497176, "resolution": 0.298582141647617}]
});
this.loaded = true;
this.onLoad(this);
},
getTileUrl: function (level, row, col) {
//.google.cn/vt/lyrs=s@143&hl=zh-CN&gl=CN&src=app
return "http://mt" + (col % 4) + ".google.cn/vt/lyrs=s@186&hl=zh-CN&gl=CN&src=app&x=" + col + "&y=" + row + "&z=" + level + "&s=";
//return "http://mt" + (col % 4) + ".google.cn/vt/lyrs=t@132,r@248000000&gl=CN&src=app&hl=zh-CN&x=" + col + "&y=" + row + "&z=" + level + "&s=Gali";
}
}); //谷歌影像切片地图
}
在JS代码中引入googleLayer.js调用该函数:
//谷歌地图加载
defineClassesBeforInitMap();
roadLayer = new GoogleMapLayer();
satLayer = new GoogleImageLayer(); //无标注影像图
lableLayer = new GoogleAnooLayer();
satLayer.visible = false;
lableLayer.visible = false;
map.addLayer(satLayer);
map.addLayer(lableLayer);
map.addLayer(roadLayer);
//定位到XX市,切片级别为11级
var lastPt = new esri.geometry.Point(11735857.316880668, 3346931.0100315223, new esri.SpatialReference({ wkid: 102113 }));
map.centerAndZoom(lastPt,11);
转载自:https://blog.csdn.net/xiongxiongdeBear/article/details/50084197