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

openlayers 加载ArcGIS 切片地图

2018-01-03 19:39 381 查看
我这里使用的版本是openlayers 3.11.1

主要的方式是使用
ol.source.XYZ
这个类来加载 切片,ArcGIS生成切片的目录文件的方式为:

\L10\R00000181\C0000034a.png


其中 10 为地图的缩放比例,
00000181
和’0000034a’ 分别是十六进制的 切片横纵坐标,也就是说我们按照这个规律就可以加载到对应的切片,然后将加载的切片拼接成图层加载到map对象就ok了。

核心代码:

// ol.source.XYZ添加瓦片地图的层
var tileLayer = new ol.layer.Tile({
source: new ol.source.XYZ({
tileUrlFunction: function (tileCoord) {
console.log(tileCoord);
//alert(tileCoord[0] + " X= " + tileCoord[1] + " Y= " + tileCoord[2]);
var oo = "00000000";
var zz = tileCoord[0];
var z = "L" + zz;
var xx = tileCoord[1].toString(16);
var x = "C" + oo.substring(0, 8 - xx.length) + xx;
var yy = (-tileCoord[2] - 1).toString(16); //注意此处,计算方式变了
var y = "R" + oo.substring(0, 8 - yy.length) + yy;
return  'C:\\arcgisserver\\directories\\arcgiscache\\test1\\Layers\\_alllayers/' + z + '/' + y + '/' + x + '.png';
},
projection: 'EPSG:3857'
})
});
map.addLayer(tileLayer);


有一点需要注意的是,默认的缩放级别是从 0~28,如果对应级别没有自己的切片的话,控制台就会报找不到切片,这个还没处理,可以控制一下最大最小的缩放级别和范围。



效果示例:我这里还加了一个OSM地图的底图,网络好的时候加载很快,网差的时候就慢点

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: