重写ArcGIS的TiledMapServiceLayer呼叫世界地图图块
require(["esri/layers/TiledMapServiceLayer"], function () {
dojo.declare("com.StrongIt.Map.Layers.LayerTianditu", esri.layers.TiledMapServiceLayer, {
_mapStyle: "",
constructor: function (mapStyle, startLevel, endLevel) {
this._mapStyle = mapStyle;
this.spatialReference = new esri.SpatialReference({
wkid: 4326
});
this.initialExtent = new esri.geometry.Extent(73.5, 4, 135, 53.5, this.spatialReference);
this.fullExtent = new esri.geometry.Extent(-180.0, -90.0, 180.0, 90.0, this.spatialReference);
this.tileInfo = new esri.layers.TileInfo({
"dpi": "90.71428571427429",
"format": "image/png",
"compressionQuality": 0,
"rows": 256,
"cols": 256,
"compressionQuality": 0,
"origin": {
"x": -180,
"y": 90
},
"spatialReference": {
"wkid": 4326
},
"lods": this._getLods(startLevel, endLevel)
});
this.loaded = true;
this.onLoad(this);
},
getTileUrl: function (level, row, col) {
var serviceNum = col % 8;
var mapInfo = this._getMapInfo();
return "http://t"
+ serviceNum
+ ".tianditu.com/DataServer?
T=" + mapInfo.mapName + "&" +
"X=" + col + "&" +
"Y=" + row + "&" +
"L=" + level;
},
_getLods: function (startLevel, endLevel) {
var lods = [];
var minScale = 590995186.1175;
var maxResolution = 1.40625;
var tempScale = minScale;
var tempResolution = maxResolution;
for (var i = 0; i <= endLevel; i++) {
var lod = {
"level": i,
"resolution": tempResolution,
"scale": tempScale
}
if (i >= startLevel) {
lods.push(lod);
}
tempScale = tempScale / 2;
tempResolution = tempResolution / 2;
}
return lods;
},
_getMapInfo: function () {
var result = {
mapName: "",
layerId: "",
tileMatrixSetId: ""
};
if(this._mapStyle == "ImageBaseMap") {
// 获取影像(底图)
result.mapName = "img_c";
result.layerId = "img";
result.tileMatrixSetId = "c";
} else if(this._mapStyle == "ImageCNNote") {
// 获取影像(中文注记)
result.mapName = "cia_c";
result.layerId = "cia";
result.tileMatrixSetId = "c";
} else if(this._mapStyle == "ImageENNote") {
// 获取影像(英文注记)
result.mapName = "eia_c";
result.layerId = "eia";
result.tileMatrixSetId = "c";
} else if(this._mapStyle == "TerrainBaseMap") {
// 获取地形图(底图)
result.mapName = "ter_c";
result.layerId = "ter";
result.tileMatrixSetId = "c";
} else if(this._mapStyle == "TerrainCNNote") {
// 获取地形图(中文注记)
result.mapName = "cta_c";
result.layerId = "cta";
result.tileMatrixSetId = "c";
} else if(this._mapStyle == "TerrainENNote") {
// 获取地形图(英文注记)
} else if(this._mapStyle == "VectorBaseMap") {
// 获取地图(底图)
result.mapName = "vec_c";
result.layerId = "vec";
result.tileMatrixSetId = "c";
} else if(this._mapStyle == "VectorCNNote") {
// 获取地图(中文注记)
result.mapName = "cva_c";
result.layerId = "cva";
result.tileMatrixSetId = "c";
} else if(this._mapStyle == "VectorENNote") {
// 获取地图(英文注记)
result.mapName = "eva_c";
result.layerId = "eva";
result.tileMatrixSetId = "c";
}
return result;
}
});
});
版权声明:本文博主原创文章。博客,未经同意不得转载。
重写ArcGIS的TiledMapServiceLayer呼叫世界地图图块的更多相关文章
- 重写ArcGIS的TiledMapServiceLayer调用天地图瓦片
require(["esri/layers/TiledMapServiceLayer"], function () { dojo.declare("com.StrongI ...
- Windows phone 8 学习笔记(5) 图块与通知(转)
基于metro风格的Windows phone 8 应用提到了图块的概念,它就是指启动菜单中的快速启动图标.一般一个应用必须有一个默认图块,还可以有若干个次要图块.另外,通知与图块的关系比较密切,我们 ...
- C#实现在CAD图纸中插入另一个DWG图块的代码
C#实现在CAD图纸中插入另一个DWG图块的代码 PromptPointResult ppr = ed.GetPoint("请选择插入点:"); Point3d pt = ppr. ...
- Windows phone 8 学习笔记(5) 图块与通知
原文:Windows phone 8 学习笔记(5) 图块与通知 基于metro风格的Windows phone 8 应用提到了图块的概念,它就是指启动菜单中的快速启动图标.一般一个应用必须有一个默认 ...
- Tiled Editor 图块的两种导入方式
一.图块集图块的导入. 打开或者创建地图后,新建 新图块. 弹出新图块面板 图块类型选择 "基于图块集图块",一定要选择"嵌入地图",否则需要另存为其他类型的文 ...
- 小记——关于Tilemap图块索引编码
图集 地图 TileMap 导出的 .Tmx 文件记录了地图所有信息,其中编辑好的图块信息会存放在每个图层的 Data 节点下.以下是一个 10x10 的图层,可以看到,Data 节点记录了每个图块对 ...
- 梦想CAD控件图块COM接口知识点
梦想CAD控件图块COM接口知识点 图块是将多个实体组合成一个整体,并给这个整体命名保存,在以后的图形编辑中图块就被视为一个实体.一个图块包括可见的实体如线.圆.圆弧以及可见或不可见的属性数据.图块的 ...
- CAD插入图块前修改图块文字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- CAD插入非等比例的图块
主要用到函数说明: _DMxDrawX::InsertBlock 向控件数据库中插入一个图块,不用它插入匿名块.详细说明如下: 参数 说明 BSTR pszDwgFileName 图块定义的dwg 文 ...
随机推荐
- Android开发之Handler和Looper的关系
关于Handler的总结. Message:消息,当中包括了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理. Handler:处 ...
- RH033读书笔记(7)-Lab 8 Introduction to String Processing
Lab 8 Introduction to String Processing Sequence 1: Exercises in string processing 1. Other than the ...
- OpenCV面、人眼检测
/* 功能:实现对眼睛.脸部的跟踪. 版本号:1.0 时间:2014-4-27 */ #include <opencv2/objdetect/objdetect.hpp> #include ...
- [LeetCode92]Reverse Linked List II
题目: Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1- ...
- web报告工具FineReport在使用方法和解决方案常见错误遇到(一)
FineReport在使用方法和解决方案常见错误遇到(一) 这里写的开胃菜.我希望我们能理清自己的问题和解决办法干出来的,Mark一点点.有利于所有. 失败搜索出,如果有一个文件,看看你的度娘那里.看 ...
- C++使用对象指针
//定义结构 Box.h: #ifndef BOX_H #define BOX_H struct Box{ double length; double width; double height; do ...
- 经验19--C#大事
以前学过C#大事.但我还没有搞懂怎么弄. 这一次,他们下进行了研究. 1.定义参数类,对于参数的传递活动.(可以省略) public class UserEventArgs { ...
- Redis源代码分析(23)--- CRC循环冗余算法RAND随机数的算法
他今天就开始学习Redis源代码的一些工具来实现,在任何一种语言工具.算法实现的原理应该是相同的,一些比較经典的算法.比方说我今天看的Crc循环冗余校验算法和rand随机数产生算法. CRC算法全称循 ...
- 【C语言探索之旅】 第一部分第八课:第一个C语言小游戏
内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写 ...
- XCL-Charts绘画面积图(AreaChart) 例1
样本区域地图,发现区域图的时候把做向上注视位置图更具优势的管理.在改变. 区域图网格和轴是不一样的处理与其它图, 它是用来表示其影响范围的覆盖范围,车桥无段伸出. 在这里下处理. watermark/ ...