OpenLayers学习--加载ArcGIS缓存

来源:互联网 发布:js 静态倒计时 编辑:程序博客网 时间:2024/05/18 01:56

数据准备

使用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,打开浏览器查看地图

0 0
原创粉丝点击