OpenLayers学习--加载ArcGIS缓存
2015-09-17 13:33
316 查看
数据准备
使用ArcGIS发布地图,并切图得到松散的缓存瓦片数据,一般存储路径为:C:\arcgisserver\directories\arcgiscache
使用ArcGIS10.2之前的ArcGIS Server数据目录可能不一样,请自己找到arcgiscache 文件夹。
本实例使用的缓存配置如下图:
发布数据
本步骤主要目的是将ArcGIS缓存的瓦片发布的到服务器上,使外网可以访问到瓦片数据。
将缓存路径发布的IIS上(路径为:http://localhost:9999),如下图:
加载缓存类(该类可以加载任何ArcGIS发布的数据)
关键步骤就是重现getURL()方法,当地图刷新的时候可以找到服务器中切片存放的路径。
OpenLayers加载缓存文件的代码如下:
OpenLayers.Layer.ESRICache = OpenLayers.Class(OpenLayers.Layer.TMS, {
tileOriginCorner: 'tl',
type: 'png',
initialize: function (name, url, options) {
OpenLayers.Layer.TMS.prototype.initialize.apply(this, [name, url,options]);
},
getURL: function (bounds) {
var z = map.getZoom();
var res = map.getResolution(z);
var x = parseInt((bounds.getCenterLonLat().lon - this.tileOrigin.lon) / (256 * res));
var y = parseInt((this.tileOrigin.lat - bounds.getCenterLonLat().lat) / (256 * res));
x = 'C' + OpenLayers.Number.zeroPad(x, 8, 16);
y = 'R' + OpenLayers.Number.zeroPad(y, 8, 16);
z = 'L' + OpenLayers.Number.zeroPad(z, 2, 10);
return this.url + z + '/' + y + '/' + x + '.' + this.type;
},
});
使用示例
初始化地图图层:
var esri = new OpenLayers.Layer.ESRICache("ArcGIS缓存", 'http://localhost:9999/',
{
resolutions: [
0.01903568804664224,
0.00951784402332112,
0.00475892201166056,
0.00237946100583028,
0.00118973050291514
],
maxExtent: [103.59974, 24.621635, 109.55483, 29.224079],
tileOrigin: new OpenLayers.LonLat(-400, 400)
});
初始化地图:
map = new OpenLayers.Map('map', {
projection: "EPSG:4326",
displayProjection:"EPSG:4326",
//maxExtent: [103.59974, 24.621635, 109.55483, 29.224079],
controls:[]
});
map.addLayer(esri);
OK,打开浏览器查看地图
使用ArcGIS发布地图,并切图得到松散的缓存瓦片数据,一般存储路径为:C:\arcgisserver\directories\arcgiscache
使用ArcGIS10.2之前的ArcGIS Server数据目录可能不一样,请自己找到arcgiscache 文件夹。
本实例使用的缓存配置如下图:
发布数据
本步骤主要目的是将ArcGIS缓存的瓦片发布的到服务器上,使外网可以访问到瓦片数据。
将缓存路径发布的IIS上(路径为:http://localhost:9999),如下图:
加载缓存类(该类可以加载任何ArcGIS发布的数据)
关键步骤就是重现getURL()方法,当地图刷新的时候可以找到服务器中切片存放的路径。
OpenLayers加载缓存文件的代码如下:
OpenLayers.Layer.ESRICache = OpenLayers.Class(OpenLayers.Layer.TMS, {
tileOriginCorner: 'tl',
type: 'png',
initialize: function (name, url, options) {
OpenLayers.Layer.TMS.prototype.initialize.apply(this, [name, url,options]);
},
getURL: function (bounds) {
var z = map.getZoom();
var res = map.getResolution(z);
var x = parseInt((bounds.getCenterLonLat().lon - this.tileOrigin.lon) / (256 * res));
var y = parseInt((this.tileOrigin.lat - bounds.getCenterLonLat().lat) / (256 * res));
x = 'C' + OpenLayers.Number.zeroPad(x, 8, 16);
y = 'R' + OpenLayers.Number.zeroPad(y, 8, 16);
z = 'L' + OpenLayers.Number.zeroPad(z, 2, 10);
return this.url + z + '/' + y + '/' + x + '.' + this.type;
},
});
使用示例
初始化地图图层:
var esri = new OpenLayers.Layer.ESRICache("ArcGIS缓存", 'http://localhost:9999/',
{
resolutions: [
0.01903568804664224,
0.00951784402332112,
0.00475892201166056,
0.00237946100583028,
0.00118973050291514
],
maxExtent: [103.59974, 24.621635, 109.55483, 29.224079],
tileOrigin: new OpenLayers.LonLat(-400, 400)
});
初始化地图:
map = new OpenLayers.Map('map', {
projection: "EPSG:4326",
displayProjection:"EPSG:4326",
//maxExtent: [103.59974, 24.621635, 109.55483, 29.224079],
controls:[]
});
map.addLayer(esri);
OK,打开浏览器查看地图
相关文章推荐
- centos lsb版本冲突的解决方案
- 去掉xcode编译warning:ld: warning: directory not found for option '-L
- centos 6u5 搭建nginx+php+mysql环境。
- L7 linux shell编程练习
- centos 7配置静态IP 后 service network restart 成功 IP仍然保持原来值不变
- Tomcat学习笔记 - 错误日志 - Tomcat部署项目或修改xml配置出现无法保存的情况(拒绝访问)
- linux mac中实现类似secureCRT的clone session
- linux下常用命令
- Linux上安装Weblogic并部署iserver 7C war 包
- Properties的用法 Map映射 集合下的子类 Hashtable 的子类
- OpenWRT 添加应用程序开机启动方法
- shell 为变量赋值 命令的输出结果赋值
- 如何做好大型数据中心的运维
- Apache2.4和Tomcat7.0安装整合
- org.apache.ibatis.reflection.ReflectionException: There is no getter for property
- Tomcat学习笔记 - 错误日志 - NetBeans配置tomcat出错情况总结 -- 尚未授予访问 Tomcat 服务器的权限。请在服务器管理器的 Tomcat 定制器中设置 "manager-script" 角色的正确用户名和口令。 有关详细信息, 请查看服务器日志。
- Photoshop中不透明度和流量区别详细剖析
- root密码被改之后
- 解决window2012 IIS8 配置的网站无法下载exe文件的问题
- myeclipse tomcat启动项目出现 内存溢出