1、创建新的切片方案
ArcMap默认的切片方案中,切片的数据格式是COMPACT(紧凑格式:bundle),但紧凑型的切片文件无法供第三方的GIS API调用使用,需使用EXPLODED(松散格式:png、jpg等)松散型切片格式。
创建的步骤如下:
打开ArcMap中的ArcToolbox,Data Management Tools—>Tile Cache—>Generate Tile Cache Tiling Scheme
(1)生成切片方案
(2)设置环境
设置并行处理数为0
2、管理缓存切片—【ArcMap篇】
设置缓存路径、选择带切片的地图文档、导入上步中创建的切片方案、设置切片的比例尺范围。
注意:切片缓存位置留有充足的存储空间。
同样的设置并行处理数为0,不为0会报错。
3、点击确定,开始进行切片创建,等待创建完成
4、管理缓存切片—【GeoScene Pro篇】
设置缓存路径、选择带切片的地图文档、导入上步中创建的切片方案、设置切片的比例尺范围。
注意:切片缓存位置留有充足的存储空间。使用pro会自动根据服务器的性能设置相应的并行个数。
【经测试】ArcMap切片缓存用时:58分16秒
GeoScene Pro切片缓存用时:11分25秒
经测试pro的切片效率约为ArcMap的5倍,正好是并行线程数+1。推荐使用Pro进行切片。
5、应用
(1)切片数据代理
切片制作完成后,直接将文件拷贝到代理服务器的文件夹下,本例中使用tomcat进行网络代理,放置在webapps下指定的缓存目录中。
- 可支持使用tomcat、nginx、iis等服务代理工具。
(2)使用arcgis js4.x调用切片
// 基于ArcMap创建的松散型切片文件的离线地图服务
let arcgislocalUrl = 'http://172.16.7.157:8089/telitgisCache/LD_2020_TDLYFL_ANHUIpro'
let arcgisServerTileLayer = BaseTileLayer.createSubclass({
properties: {
urlTemplate: null
},
getTileUrl: function (level, row, col) {
//console.log(level, row, col)
return (
this.urlTemplate +
'/Layers/_alllayers/' +
'L' +
zeroPad(level, 2, 10) +
'/' +
'R' +
zeroPad(row, 8, 16) +
'/' +
'C' +
zeroPad(col, 8, 16) +
'.' +
'png'
)
}
})
//实例化一个基于arcgis的切片离线地图服务,输入地址,赋予id、title等其他参数
let myTileLayer = new arcgisServerTileLayer({
urlTemplate: arcgislocalUrl,
id: 'LD_2020_TDLYFL',
title: '土地利用分类2020'
})
//在地图上加载图层
map.add(myTileLayer)
(3)展示结果如下图所示