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 查 ...
随机推荐
- 和我一起从0学算法(C语言版)(四)
第三章 搜索 深度优先搜索与宽度优先搜索 定义 深度优先搜索(DFS) 过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次. 宽度优先搜索(BFS) 不考虑结果的可能位 ...
- //使用PDO连接mysql数据库
<?php //使用PDO连接mysql数据库 class pdo_con{ var $dsn = 'mysql:dbname=test; host:127.0.0.1'; va ...
- SpringMVC在使用JSON时报错信息为:Content type 'application/json;charset=UTF-8' not supported
直接原因是:我的(maven)项目parent父工程pom.xml缺少必要的三个jar包依赖坐标. 解决方法是:在web子模块的pom.xml里面添加springMVC使用JSON实现AJAX请求. ...
- Ubuntu---Git
本篇文章简单总结了常用 Git 的使用 前言 设置用户信息 1, Git 是分布式的 SSH 代码管理工具,远程的代码管理是基于 SSH 的,所以要使用远程的 Git 则需要 SSH 的配置. ste ...
- 连词词组|relax|brings about a rise in|Chance are (high)that|Have no clue|Be passionate about|Tedious|overwhelmed by piles of
efficient有效率的 effective有效果的 Make sb. Do Stuff没有复数 首先的三种表述:First off=To begin with=For starters 其次:Ad ...
- 使用Anaconda安装TensorFlow
conda create -n tensorflow python=2.7 # or python=3.3, etc. pip install --ignore-installed --upgrade ...
- 第一章 mysql 的架构与历史
一.mysql 的逻辑架构 1.连接管理与安全性 2.优化与执行 二.并发控制 1.读写锁 2.锁粒度 三.事物 1.隔离级别 2.死锁 3.事物日志 四.多版本并发控制 五.Mysql 的存储引擎
- 移动端web前端开发
移动端浏览器现状 视口 meta视口标签 二倍图 移动端主流方案 移动端技术解决方案 移动端常见布局 1.流式布局(百分比布局) 2.flex布局 3.rem适配布局 1)rem单位 2)媒体查询 3 ...
- Entity Framework实现属性映射约定
Entity Framework Code First属性映射约定中“约定”一词,在原文版中为“Convention”,翻译成约定或许有些不好理解,这也是网上比较大多数的翻译,我们就当这是Entity ...
- crf多表与基表系列化-自定义序列化深度表查询-断关联表关系-多表反序列化
学习表关系的序列化和反序列表查询之前,新建项目的准备工作及环境搭建的配置. 配置:settings.py INSTALLED_APPS = [ # ... 'rest_framework', ] DA ...