您的位置:首页 > 运维架构

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,打开浏览器查看地图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: