openlayers3使用已有的ArcGIS切片

有时候我们的切片数据是用ArcGIS配图后切的,或者是用地图下载器的ArcGIS切片的格式,项目需要用openlayers3,目前我用了三种方式来使用已有的ArcGIS切片。

1.使用发布工具发布,然后自己拼URL地址

使用IIS或者Tomcat发布切片,通过url可以访问到每个切片就可以。这种方法不需要读切片的配置文件,但是要知道切片的坐标系。

(需要说明的是每个版本的openlayers规则都可能不同,需要在此基础上进行微调)

var tileLayer = new ol.layer.Tile({
		source: new ol.source.XYZ ({
			tileUrlFunction: function(tileCoord) {
				var x = 'C'+zeroPad(tileCoord[1],8,16);
				var y = 'R'+zeroPad(-tileCoord[2]-1,8,16);
				var z = 'L'+zeroPad(tileCoord[0],2,10);
				return url+'/'+z+'/'+y+'/'+x+'.png';
			},
			projection: 'EPSG:3857'
		})
	});
function zeroPad(num,len,radix){
		var str = num.toString(radix || 10);
		while(str.length<len){
			str = "0"+ str;
		}
		return str;
	}

2.使用GeoWebcache发布WMS服务,然后调用

见我的另外一篇博文
http://blog.csdn.net/u014529917/article/details/52241982

3.使用ArcGIS
Server发布

这种方法看起来不太严谨,但是亲测可行。

 a.设置空的mxd文档,空的mxd的文档空间参考和范围必须按照已经切片好的服务设置
b.发布空的mxd文档的服务
c.在发布窗口,右键发布的mxd文档-服务属性-缓存,设置和切片相同的缓存选项,启动创建切片。

 d.取消创建切片
e.拷贝已有切片,覆盖新创建的切片
此时访问该服务,访问到的就是原有的切片了。

调用方法代码:

var arcgisTileLayer = new ol.layer.Tile({  
        source: new ol.source.TileArcGISRest({  
            url: 'http://localhost:8399/arcgis/rest/services/test/MapServer'  --ArcGIS Server服务地址
        })  
    })  

结束,有不对的欢迎指正!


转载自:https://blog.csdn.net/u014529917/article/details/52250625

You may also like...