本篇主要介绍利用ArcGIS API for Javascript 4版本的最新版本4.10加载天地图的矢量地图、影像地图和地形图(墨卡托投影),以加载矢量地图为例,我们通过扩展BaseTileLayer
来自定义矢量地图图层TiandiMapLayer
模块。
1、示例运行效果:
【矢量地图】
【影像地图】
【地形图】
2、申请秘钥
从2019年开始,天地图访问需要申请账户秘钥,在【控制台】—【应用管理】中新建一个应用,此时就会生成对应的秘钥。
3、扩展类BaseTileLayer——定义TiandiMapLayer、TiandiAnnoLayer
参考官方文档说明,我们主要设置三部分:请求url、getTileUrl()、fetchTile()。getTileUrl()
主要是根据请求级别、行列号生成url;fetchTile()
主要是发送动态的url请求并得到返回的图片,同时,可以根据需求进行合并图像。矢量图层的代码如下:
define(["dojo/_base/declare", "dojo/_base/lang","esri/config","esri/layers/BaseTileLayer","esri/request"],
function (declare,lang,esriConfig,BaseTileLayer,esriRequest) {
return BaseTileLayer.createSubclass({
properties: {
urlTemplate: null
},
getTileUrl: function(level, row, col) {
var url = "http://t"+col % 8 +".tianditu.gov.cn/DataServer?T=vec_w&tk=申请的秘钥&x="+col+"&y="+row+"&l="+level;
return url;
},
fetchTile: function(level, row, col)