没有Conf.xml,Ceisum加载ArcGIS 地图切片存储格式

19 阅读1分钟

ScreenShot_2026-01-09_153611_236.png

ScreenShot_2026-01-09_153702_468.png

// 十六进制格式化函数:将数字转换为8位十六进制,并补零
function zeroPad(num) {
    let hex = num.toString(16);
    return hex.padStart(8, '0');
}

var layerB = new Cesium.UrlTemplateImageryProvider({
    // 这里的 url 指向你存放 _alllayers 的静态服务器路径
    // {z} {y} {x} 是占位符,但我们需要通过自定义处理它们
    url: 'http://your-server-ip/path/to/_alllayers/L{z}/R{r}/C{c}.png',
    
    // 自定义处理渲染路径
    customTags: {
        r: function(imageryProvider, x, y, level) {
            // ArcGIS 目录层级通常比 Cesium 的 level 多 1(如果 L01 开始)
            // 如果你的文件夹是从 L01 开始,这里写 level + 1
            return zeroPad(y);
        },
        c: function(imageryProvider, x, y, level) {
            return zeroPad(x);
        },
        z: function(imageryProvider, x, y, level) {
            // 根据你的实际目录补齐两位数字,例如 L14 或 L03
            return (level).toString().padStart(2, '0');
        }
    },
    maximumLevel: 10 // 限制该图层在 10 级以上不再加载
});

// 添加到 viewer
viewer.imageryLayers.addImageryProvider(layerB);

GEMINI太好用了啊兄弟们,先前用自定义的ArcgisProvider类加载还是有问题,问了G哥,几行代码简单明了地解决了