切片地图"/>
openlayers 加载ArcGIS 切片地图
我这里使用的版本是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地图的底图,网络好的时候加载很快,网差的时候就慢点
更多推荐
openlayers 加载ArcGIS 切片地图
发布评论