leaflet本地加载arcgis切片
var origin = [-20037700, 33711400];//图层起点坐标
var resolutions = [
8466.6836000338681, // Level 0
4233.341800016934, // Level 1
2116.670900008467, // Level 2
1058.3354500042335, // Level 3
529.16772500211675 // Level 4
];
var crs = new L.Proj.CRS(
'',
'+proj=cea +lon_0=0 +lat_ts=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs' , {
origin: origin,
resolutions: resolutions
}
);
var map = L.map('map',{
crs: crs,
continuousWorld: true,
worldCopyJump: false
}).setView([23.39552, 113.308189], 0);
var tileLayer = new L.TileLayer.TileLoad('http://localhost:8080/resources/china', {
maxZoom: resolutions.length - 1,
minZoom: 0,
continuousWorld: true
});
tileLayer.addTo(map);
/**
* 加载本地arcgis切片类
*
* @author ful
* @date 2014-09-03
* @copyright (c)
*/ /**
* 继承自TileLayer
* @param {Object} tomcat中映射该切片目录url
* @param {Object} options
*/
L.TileLayer.TileLoad = L.TileLayer.extend({
initialize: function (url, options) {
options = L.setOptions(this, options);
this.url = url + "/Layers/_alllayers/{z}/{x}/{y}.png";
L.TileLayer.prototype.initialize.call(this, this.url, options);
}
}); /**
* 重写TileLayer中获取切片url方法
* @param {Object} tilePoint
*/
L.TileLayer.prototype.getTileUrl = function(tilePoint) {
return L.Util.template(this._url, L.extend({
s: this._getSubdomain(tilePoint),
z: function() {
var value = tilePoint.z.toString(16);
return "L" + pad(value, 2);
},
x: function() {
var value = tilePoint.y.toString(16);
return "R" + pad(value, 8);
},
y: function() {
var value = tilePoint.x.toString(16);
return "C" + pad(value, 8);
}
}));
}; L.tileLayer.tileLoad = function(url, options){
return new L.TileLayer.TileLoad(url, options);
}; /**
* 高位补全方法
* @param {Object} 数字类型字符串
* @param {Object} 总位数,不足则高位补0
*/
var pad = function(numStr, n) {
var len = numStr.length;
while(len < n) {
numStr = "0" + numStr;
len++;
}
return numStr;
};
最后赋一段extend代码
// 扩展加载ArcServer本地缓存的服务
L.TileLayer.ArcServerTileLoad = L.TileLayer.extend({
getTileUrl: function(tilePoint) {
var oo = "00000000";
var xx = tilePoint.x.toString(16);
xx = "C" + oo.substring(0, 8 - xx.length) + xx;
//var yy = (tilePoint.y - Math.pow(2, tilePoint.z - 2)).toString(16); //这里减去偏移值
var yy = tilePoint.y.toString(16);
yy = "R" + oo.substring(0, 8 - yy.length) + yy; //z如果小于10的时候处理下
if(tilePoint.z.toString().length == 1) {
tilePoint.z = '0' + tilePoint.z.toString();
}
return L.Util.template(this._url, L.extend({
s: this._getSubdomain(tilePoint),
z: "L" + tilePoint.z,
x: xx,
y: yy
}, this.options));
}
}); L.tileLayer.arcServerTileLoad = function(url, options){
return new L.TileLayer.ArcServerTileLoad(url, options);
};
//return this.baseLayer = L.tileLayer.arcServerTileLoad(url);
leaflet本地加载arcgis切片的更多相关文章
- Leaflet,OpenLayers3加载ArcGIS切片(png格式,Exploded松散型)
需求 做了一个简单的WebGIS应用,不想因为加载切片就安装一台GIS服务器.于是想直接访问图片的方式来加载地图. 需解决的问题 leafletjs目前是不能够直接加载ArcGIS服务切片的,但可以借 ...
- ArcGIS紧凑型切片读取与应用2-webgis动态加载紧凑型切片(附源码)
1.前言 上篇主要讲了一下紧凑型切片的的解析逻辑,这一篇主要讲一下使用openlayers动态加载紧凑型切片的web地图服务. 2.代码实现 上篇已经可以通过切片的x.y.z得对应的切片图片,现在使用 ...
- maptalks 如何加载 ArcGIS 瓦片图层
最近需要加载 ArcGIS 瓦片图层,运行官网加载 ArcGIS 瓦片图层的 demo 是没有问题的.如果把 ArcGIS 瓦片图层 URL 换成是自已发布的 ArcGIS 地图服务,发现加载不出来, ...
- ios -网络加载json和本地加载json
1网络加载json的时候,要在模型的实现文件里写: - (void)setValue:(id)value forKey:(NSString *)key { } 2本地加载json的时候,要在模型的实现 ...
- Android 如何本地加载pdf文件
大部分app打开pdf文件是通过intent调起手机中能打开pdf文件的工具,来查看pdf文件,如果需求是,用户在app内下载好pdf文件后,不通过第三方的工具,本地打开. 这样的需求要怎么实现呢?上 ...
- Unity3d-WWW实现图片资源显示以及保存和本地加载
本文固定连接:http://blog.csdn.net/u013108312/article/details/52712844 WWW实现图片资源显示以及保存和本地加载 using UnityEngi ...
- visual studio 2010 自带reporting报表本地加载的使用
原文:visual studio 2010 自带reporting报表本地加载的使用 在这家公司时间不长,接触都是之前没玩过的东东,先是工作流引擎和各种邮件短信的审核信息,后又是部署reporting ...
- Tensorflow 2 flower_photos花卉数据集手动下载、离线安装、本地加载、快速读取
Tensorflow 2 flower_photos花卉数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.c ...
- Tensorflow 2 Cifar10离线数据集手动下载、离线安装、本地加载、快速读取
Tensorflow 2 Cifar10离线数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 查 ...
随机推荐
- dp高难本攻略
903. DI 序列的有效排列 public int numPermsDISequence(String S) { int n=S.length(); int [][]dp=new int [n+1] ...
- 查路由途径 traceroute tracert
linux 用 traceroute IP windows用 tracert IP 虚拟机下使用无效
- Django的URL路由基础
一.概述 URL路由在Django项目中的体现就是urls.py文件,这个文件可以有很多个,但绝对不会在同一目录下.实际上Django提倡项目有个根urls.py,各app下分别有自己的一个urls. ...
- SALESGROSSSALES_成本_利润
//获取成本GETCOST_TMP:NoConcatenateLOAD T_SAL_OUTSTOCK.LE_ID, [T_SAL_OUTSTOCK.LCY CODE], T_SAL_OUTSTOCK. ...
- NFS 文件共享
备注:NFS 文件共享需设置两部分:服务端和客户端 一.服务端设置 1.1.查看nfs包是否安装,未安装则重新安装 [root@localhost ~]# rpm -qa|grep rpcbind r ...
- 吴裕雄--天生自然ShellX学习笔记:Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一 ...
- 黑马IDEA版javaweb_2-1基础加强
今日内容 1. Junit单元测试 2. 反射 3. 注解 ## Junit单元测试: * 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 2. 白盒测试:需要写代码 ...
- webgis笔记
3.8(02) .特点:由服务端进行数据管理 开源的GO sever WMS/WCS/WTS 1sever/2engine/3database/4standard 扩展的空间数据库,存矢量.栅格.直接 ...
- c++语法(3)
子类覆盖父类的成员函数: #include "stdafx.h" #include "iostream" class CAnimal { protected: ...
- 7.docker file 语法
详细文档 : https://docs.docker.com/engine/reference/builder/ 1. FROM 尽量使用官方的 image 作为 base image FROM ...