在使用ArcGis地图服务时,ArcGis会默认加载自己底图,加载速度较慢且会有一些其他原因导致在国内访问体验感较差,所以我们可以尝试把ArcGis的底图更换为天地图
,仅仅使用ArcGis的Api。
开始之前先介绍一下天地图,这是百度百科截取了一段介绍,所以大家可以放心的使用天地图
的底图服务
“天地图”是国家测绘地理信息局建设的地理信息综合服务网站。集成了来自国家、省、市(县)各级测绘地理信息部门,以及相关政府部门、企事业单位 、社会团体、公众的地理信息公共服务资源,向各类用户提供权威、标准、统一的在线地理信息综合服务。
使用之前还需要先去天地图的官网国家地理公共服务平台注册账号拿到tk
WebTileLayer 提供了一种将非 ArcGIS Server 地图切片作为图层添加到地图的简单方法。构造函数,通常如下的图案的URL模板
http://some.domain.com/{level}/{col}/{row}/
,其中level
对应于缩放级别,并column
和row
代表瓷砖列和行
引入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的底图服务
这是我们替换后的,可以看到这时我们的瓦片请求地址已经更换成了天地图,并且这时的底图渲染速度也基本可以达到一个秒开的效果,欢迎大家尝试
文章如有不足之处请指出,我们一起学习交流,万分感谢~~~