Skip to content

合并图件

mergeFile (lpszFileName, lpszFileExtension, bAutoProjection, callback, RelevantFiles)

说明

合并图件,通常在打开图件之前使用,通过合并模板文件来修饰之后打开的图件

参数

NameTypeDescription
lpszFileNamestring合并图件文件路径
lpszFileExtensionstring图件后缀名
bAutoProjectionnumber是否自动投影
callbackfunction读取成后需要执行的操作
RelevantFilesarray关联文件地址

示例

javascript
// 合并图件
gdfCtrl.ctrl.file.mergeFile('http://www.xxx.xxx.dfd', '.dfd', 1, function (obj) {
    gdfCtrl.ctrl.viewRefresh(0x01 | 0x02 | 0x04, function () {
        gdfCtrl.ctrl.mainCanvas.viewFitCenter();
    });
});

扩展

在添加 DFDraw 文件时,通常包含点线面三种类型文件,此时用合并图件来添加点线面文件
若需要指定根图层名,则将 mergeFile 替换为 mergeFileRoot 方法即可

javascript
// DFDrwa文件列表
var files = [
    // FileUrl中的文件名与实际文件名不一致时需要额外添加上FileName参数
    {
        // 点文件
        FileUrl: `http://www.xxx.xxx/DFDraw1_point.shp`,
        RelevantFiles: [
            {
              FileUrl: `http://www.xxx.xxx/DFDraw1_point.dbf`,
              FileName:"DFDraw1_point.dbf"
            },
            {
              FileUrl: `http://www.xxx.xxx/DFDraw1_point.shx`,
              FileName:"DFDraw1_point.shx"
            },
        ],:""
    },
    {
        // 面文件
        FileUrl: `http://www.xxx.xxx/DFDraw1_polygon.shp`,
        RelevantFiles: [
            {
              FileUrl: `http://www.xxx.xxx/DFDraw1_polygon.dbf`,
              FileName:"DFDraw1_polygon.dbf"
            },
            {
              FileUrl: `http://www.xxx.xxx/DFDraw1_polygon.shx`,
              FileName:"DFDraw1_polygon.shx"
            },
        ],
    },
    {
        // 线文件
        FileUrl: `http://www.xxx.xxx/DFDraw1_polyline.shp`,
        RelevantFiles: [
            {
              FileUrl: `http://www.xxx.xxx/DFDraw1_polyline.dbf`,
              FileName:"DFDraw1_polyline.dbf"
            },
            {
              FileUrl: `http://www.xxx.xxx/DFDraw1_polyline.shx`,
              FileName:"DFDraw1_polyline.shx"
            },
        ],
    },
];

// 递归合并图件
function openMaps(list, i) {
    var item = list[i];
    gdfCtrl.ctrl.file.mergeFile(item.FileUrl, 'shp', 1, function(obj) {
        if (list[i + 1]) {
            openMaps(list, i + 1)
        } else {
            gdfCtrl.ctrl.viewRefresh(0x01 | 0x02 | 0x04, function () {
              gdfCtrl.ctrl.mainCanvas.viewFitCenter();
            });
        }
    }, item.RelevantFiles);
}

// 添加DFDraw图件
openMaps(files, 0);