1、创建新的切片方案

ArcMap默认的切片方案中,切片的数据格式是COMPACT(紧凑格式:bundle),但紧凑型的切片文件无法供第三方的GIS API调用使用,需使用EXPLODED(松散格式:pngjpg等)松散型切片格式。

创建的步骤如下:

打开ArcMap中的ArcToolboxData Management Tools>Tile Cache>Generate Tile Cache Tiling Scheme

1)生成切片方案

(2)设置环境

设置并行处理数为0

2、管理缓存切片—【ArcMap篇】

设置缓存路径、选择带切片的地图文档、导入上步中创建的切片方案、设置切片的比例尺范围。

注意:切片缓存位置留有充足的存储空间。

同样的设置并行处理数为0,不为0会报错。

3、点击确定,开始进行切片创建,等待创建完成

4、管理缓存切片—【GeoScene Pro篇】

设置缓存路径、选择带切片的地图文档、导入上步中创建的切片方案、设置切片的比例尺范围。

注意:切片缓存位置留有充足的存储空间。使用pro会自动根据服务器的性能设置相应的并行个数。

【经测试】ArcMap切片缓存用时:5816

GeoScene Pro切片缓存用时:1125

经测试pro的切片效率约为ArcMap5倍,正好是并行线程数+1。推荐使用Pro进行切片。

5、应用

1切片数据代理

切片制作完成后,直接将文件拷贝到代理服务器的文件夹下,本例中使用tomcat进行网络代理,放置在webapps下指定的缓存目录中。

  • 可支持使用tomcatnginxiis等服务代理工具。

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)展示结果如下图所示