美文网首页
SuperMap iClient3D for WebGL扩展开发

SuperMap iClient3D for WebGL扩展开发

作者: Mr桔子先生 | 来源:发表于2021-12-02 10:48 被阅读0次

    通常用BingMapsImageryProvider加载出来的Bing地图都是英文的,也没法设置参数去设置,下面就来手动对接下。

    1、Bing地图瓦片体系

    想要在三维球上对接一个瓦片服务,首先需要了解的就是这个服务的瓦片组织的规则,Bing地图的瓦片体系比较特殊,下面来一张结构图。


    bing地图瓦片体系.png

    通过上面的结构图可以发现,Bing地图的瓦片是基于web墨卡托的全球剖分,四叉树结构,在某一层级,瓦片的编码的组织规则为:末尾编码分别是从0到3,再加前面层级所有层级的编码。

    2、计算编码

    有了前面对Bing地图瓦片的认识,这里的核心就是如何将WebGL球上的瓦片请求行列换,换算为Bing地图瓦片编码,下面来看核心代码:

    function(imageryProvider, x, y, level) {
        let bingc = "";
        let cx = x;
        let cy = y;
        for (let i = level; i > 0; i--) {
    
            let Cvalue = 2 * (cy % 2) + cx % 2
            bingc = Cvalue + bingc
    
            cx = parseInt(cx / 2);
            cy = parseInt(cy / 2);
        }
        return bingc;
    }
    

    这里通过一个倒序的循环的算法来计算对应的Bing地图瓦片编码。

    3、拼接请求

    let BingmapLayerProvider = new Cesium.UrlTemplateImageryProvider({
                url: "https://dynamic.t0.tiles.ditu.live.com/comp/ch/{c}?it=G,TW,L,LA&mkt=zh-cn&og=109&cstl=w4c&ur=CN&n=z",
                // minimumLevel: minlevel || 0,
                // maximumLevel: maxlevel || 22,
                tilingScheme: new Cesium.WebMercatorTilingScheme(),
                customTags: {
                    c: function(imageryProvider, x, y, level) {
                        let bingc="";
                        let cx=x;
                        let cy=y;
                        for(let i=level;i>0;i--){
    
                                let Cvalue=2*(cy%2)+cx%2
                                bingc=Cvalue+bingc
                                
                                cx=parseInt(cx/2);
                                cy=parseInt(cy/2);
                        }
                        return bingc;
                    }
                }
            
    });
            
    let layer = viewer.imageryLayers.addImageryProvider(BingmapLayerProvider);
    

    参数说明:
    是否带标注:it=G,TW,L,LA G,TW,L G,TW,RL
    语言设置: mkt=zh-cn,en-US

    加载效果

    相关文章

      网友评论

          本文标题:SuperMap iClient3D for WebGL扩展开发

          本文链接:https://www.haomeiwen.com/subject/ucqhtrtx.html