贴个群号
WebGIS学习交流群461555818,欢迎大家。
原理
一般我们调用的天地图都是这样的链接,但是根据官网上这句话其实可以看到,那个t2其实完全可以改成t1、t0、甚至t7.
调用的时候随机调用一个就可以,但是我们如果真的只调用一个的话,往往会出现丢失切片,尤其是在缩放的时候,直接白了一片,还有418、404等各种问题。究极原因就是因为一个域名的访问太频繁了,到之后他会出现这种问题。
那么这个时候我们就可以使用一个随机数,从0-7的,放在这个t的后面,让他每次调用的时候都随机调用一个地址,结果是一样的,但是域名访问的压力一下子就变成了之前的1/8.基本就不会出现这种问题了。
解决示例
const servers = [...Array(8).keys()];
const rand = (min = 0, max = 1) => (
Math.round(Math.random() * (max - min) + min)
)
const serversProxy = new Proxy(servers, {
get(target, prop){
if (prop === 'server') {
return target[rand(1, target.length - 1)]
}
return target[prop]
}
})
//下面的url就可以换成
const tianditu = 'http://t'+serversProxy.server+'.tianditu.gov.cn/vec_c/wmts?tk=您的密钥'