openLayer加载ArcGIS切片

OpenLayer中加载ArcGIS服务提供了最经常使用的TileArcGISRest方法,实际上咱们从浏览器的network捕捉的每次的请求连接亦或者看其源码,都会发现,它实际上调取了arcserver的REST API中的export接口,对于普通的服务来讲确实足够了,可是对于地图服务内容比较多的服务,使用export的方法,会加大服务器的承担量,会出现加载等待的状况。html

 

 

 因此咱们须要作切片,并调取切片地址,调取切片咱们使用XYZ方式浏览器

下面是方法服务器

   import TileLayer from "ol/layer/Tile";
   import {XYZ} from "ol/source";
   import TileGrid from "ol/tilegrid/TileGrid";


    let newLayer = new TileLayer({
                    source: new XYZ({
                        url: `${url}/tile/{z}/{y}/{x}`,
                        tileGrid: new TileGrid(_tileInfo),
                        projection: 'EPSG:4528',
                    })
                });

若是使用的是我博客OpenLayer对容器Map自定义坐标系中的方法,其中的 projection只须要声明便可,由于你已经在容器中进行了注册post

其中的tileGrid参数必定要填,其中的_tileInfo须要本身去配置,我是自定义的切片方案,下面是个人配置大概结构url

 tileInfo: {
      tileSize: 256,
      origin: [34876800, 10002100],
      extent: [4033632.0624805965, 3941793.1294050445, 40415464.86271994, 4009201.8967805225],
      resolutions: [
        132.29193125052919,
        76.351460927313525,
        38.175730463656762,
        19.087865231828381,
        9.543932616046483,
        4.7719663078909491,
        2.3859831539454746,
        1.1929915769727373,
        0.59649578861866059,
        0.14912394722081113
      ]
    }

其中的resolutions须要降序排列,其具体的值,须要本身去你所发布的arcserver详细页面去查看spa