首页 / 浏览问题 / WebGIS / 问题详情
超图FAQ:【iClient】【11.0.1】【10.2.1】 请问 iClient for MapboxGL 加载 SuperMap iServer 发布的栅格瓦片 WMTS 服务时,无论服务本身范围多大加载时都被放大到了全球范围是什么原因呢?如何解决?
44,106EXP 2023年07月26日
【iClient】【11.0.1】【10.2.1】 请问 iClient for MapboxGL 加载 SuperMap iServer 发布的栅格瓦片 WMTS 服务时,无论服务本身范围多大加载时都被放大到了全球范围是什么原因呢?如何解决?

1个回答

【问题原因】 iClient for MapboxGL 本身加载 SuperMap iServer 发布的 WMTS 服务时,是从全球范围左上角开始计算的,所以无论 WMTS 服务数据范围是多大,第一层都会被放大到全球范围。 【解决方案】 在生成栅格瓦片的时候使用全球剖分方式,发布 WMTS 服务后,需要在 iClient for MapboxGL 中捕获瓦片请求头,调整请求头中 z 值,需减去栅格瓦片和全球范围的层级差,示例代码如下: // 捕获瓦片请求头并调整 z 值 transformRequest: function (url,resourceType) { let skey = 'TileMatrix='; let tempZ = 7; let ss = url; if (ss.indexOf(skey) != -1){ let t = ss.split(skey); let i = t[1].indexOf('&'); let tUrl = t[0] + skey + (parseInt(t[1].substr(0, i)) - tempZ - 1) + t[1].substr(i); return { url: tUrl }; } else { return { url: url }; } }
44,106EXP 2023年07月26日
热门文章
关注我们
...