ArcGis默认地图加载太慢?来试试更换底图

2,129 阅读2分钟

一、前言

在使用ArcGis地图服务时,ArcGis会默认加载自己底图,加载速度较慢且会有一些其他原因导致在国内访问体验感较差,所以我们可以尝试把ArcGis的底图更换为天地图,仅仅使用ArcGis的Api。

二、天地图

开始之前先介绍一下天地图,这是百度百科截取了一段介绍,所以大家可以放心的使用天地图的底图服务

“天地图”是国家测绘地理信息局建设的地理信息综合服务网站。集成了来自国家、省、市(县)各级测绘地理信息部门,以及相关政府部门、企事业单位 、社会团体、公众的地理信息公共服务资源,向各类用户提供权威、标准、统一的在线地理信息综合服务。

使用之前还需要先去天地图的官网国家地理公共服务平台注册账号拿到tk

三、WebTileLayer

WebTileLayer 提供了一种将非 ArcGIS Server 地图切片作为图层添加到地图的简单方法。构造函数,通常如下的图案的URL模板 http://some.domain.com/{level}/{col}/{row}/,其中level对应于缩放级别,并 columnrow代表瓷砖列和行

引入ArcGisWebTileLayer模块

"esri/layers/WebTileLayer",

四、初始化地图替换底图

在loadModules方法里进行底图替换

// 实例化天地图标注层
let tdtsatelliteLayer = new WebTileLayer({
  id: "tdtAnooMarkerLayer",
  title: "tdtAnooMarkerLayer",
  // 区域
  subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
  // 域名模板
  urlTemplate:
      "http://{subDomain}.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=xxxxx",
});

实例化Map时指定底图

const map = new Map({
  basemap: {   // 指定地图的底图
    baseLayers: [tdtsatelliteLayer],
  },
  layers:layer    // 可操作层的集合
});

五、验证

这是我们替换前的瓦片请求地址使用的还是ArcGis的底图服务

image.png

这是我们替换后的,可以看到这时我们的瓦片请求地址已经更换成了天地图,并且这时的底图渲染速度也基本可以达到一个秒开的效果,欢迎大家尝试

11749032-5126-4943-BB71-2B724A517B30.png

写在最后

文章如有不足之处请指出,我们一起学习交流,万分感谢~~~