重写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.Str ...
- Arcgis for js载入天地图
综述:本节讲述的是用Arcgis for js载入天地图的切片资源. 天地图的切片地图能够通过esri.layers.TiledMapServiceLayer来载入.在此将之进行了一定的封装,例如以下 ...
- OpenLayer3调用天地图示例
最近,工作中有需要用Openlayer3脚本库调用天地图的wmts服务接口,由于这两个都是刚开始接触,所以是摸着石头过河,遇到了地图显示不了的问题,虽然官网http://www.zjditu.cn/r ...
- Leaflet 调用百度瓦片地图服务
在使用 leaflet 调用第三方瓦片地图服务的项目,主要谷歌地图.高德地图.百度地图和 OSM 地图,与其他三种地图对比,百度地图的瓦片组织方式是不同的.百度从中心点经纬度(0,0)度开始计算瓦片, ...
- 如何使用借助python完成 ARCGIS工具箱的调用
上个月使用python调用arcgis工具箱完成了火点txt文件转shp文件的小功能, 感觉很不错, 写下这篇博客希望对大家有所帮助. 1.环境介绍: 系统: win8.1(64位) arcgis:d ...
- arcgis js之调用wms服务
arcgis js之调用wms服务 定义: export const tdtlayer = async () => { let WMSLayer = await arcgisPackage.WM ...
- 2019年以后ArcGIS 调用天地图的资源URL
2019年1月1日起,天地图做出如下变更,导致直接在Arcgis/ArcMap中添加WMTS服务不能用了. 国家天地图解释的很清楚,注册个人用户就可以了. 原有调用方式不变,只要在URL 后添加“&a ...
- 重写 final关键字 多态调用子类特有的属性及行为(向上向下转型)
1.override 重写:在继承中,子类与父类方法名相同,参数列表相同,的方法叫重写,与返回值有关; 主要应用于系统升级. 2.final 关键字: 可修饰:1.类-->被修饰后该类不能被继 ...
- 一个对象toString()方法如果没有被重写,那么默认调用它的父类Object的toString()方法,而Object的toString()方法是打印该对象的hashCode,一般hashCode就是此对象的内存地址
昨天因为要从JFrame控件获取密码,注意到一个问题,那就是用toString方法得到的不一定是你想要的,如下: jPasswordField是JFrame中的密码输入框,如果用下面的方法是得不到密码 ...
随机推荐
- hdu1257最少拦截系统 动态规划(最长递增子序列(LIS))
Problem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高 ...
- ruby基本语法(2)
关于数组 Ruby数组中的数据类型可以不相同并且长度也是可变的.(好聪明啊感觉用的久了就会变笨了,除非你本来就是老手)比如下面的例子 Myarray=[1,2,“ruby”] Ruby也支持那种-1的 ...
- [eclipse中使用Git插件] 008 - git操作pull、merge、stash、commit
写在前面: 看标题其实还有001-007之类,本来准备写详细的类似教程一样的东东,但是懒了且时间有限(以后或许会补吧),所以跳到008,录下主要的操作. 所以本随笔的重点就是[pull+merge+s ...
- Windows下Navicat远程连接Linux下MySQL服务器错误1130
今天用Navicat在Windows下连接Linux服务器上的MySQL,显示出错误1130. 当然这是在修改了MySQL的配置文件my.cnf的前提下允许远程访问的基础上的,如果没有修改my.cnf ...
- C# lodop 打印控件的使用
原文:https://www.cnblogs.com/izhiniao/p/4160117.html 官网:http://www.mtsoftware.cn/demo.html 先看效果图 : lod ...
- YARN的job提交流程
1.客户端向ResourceManagement 提交 运行的请求 (hadoop jar xxxx.jar) 2.ResourceManager进行检查,没有问题的时候,向客户端返回一个共享资源的路 ...
- jar 启动脚本
前段时间用springboot做项目后,每次重新发布都好麻烦, 所以写了个脚本来配合jenkins 发布: #!/bin/bash APP_NAME=application.jar function ...
- ASE "黄金点游戏"
问题定义 黄金点游戏是源于经济学家Richar Thaler构思的在1997年伦敦金融时报进行了一次公开竞猜活动.MSRA-ASE课程的第一次结对编程中,我们写了一个AI Bot来与大家玩儿这个游戏. ...
- Linux学习笔记2-CentOS7安装tomcat8
1.下载tomcat:apache-tomcat-8.5.16.tar.gz 下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat ...
- vue,一路走来(11)--HTML5 History模式
HTML5 History模式 项目中我用的是history模式. 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 如果不 ...