根据xml配置地图服务

define([
], function () {
    var mapConfig = {};
    var mapParameter = {};
    var mapPropertyConfig = './scripts/MapLoad/ConfigerFolder/MapPropertyConfig.xml';
    var functionPropertyConfig = './scripts/MapLoad/ConfigerFolder/FunctionConfig.xml';
    var baseMapPath;
    //地图切片配置路径
    var properties = 'Properties';
    //配置的一级节点
    var property = 'Property';
    //配置的二级节点
    var subProperty = 'SubProperty';
    //配置的三级节点
    var name = 'Name';
    //配置的名称
    var value = 'Value';
    //配置的值
    var baseMap = 'BaseMap';
    //地图的相关配置
    var functionProperty = 'Function';
    //功能属性配置路径
    try {
        //相关地图参数配置
        var xmlDoc = loadXML(mapPropertyConfig);
        var elements = xmlDoc.getElementsByTagName(property);
        for (var i = 0; i < elements.length; i++) {
            //获取地图配置的参数
            var innerId = elements[i].getElementsByTagName(name)[0].firstChild;
            var outId = elements[i].getElementsByTagName(value)[0].firstChild;
            if (innerId && outId) {
                var valueIsNumber = Number(outId.nodeValue);
                if (outId.nodeValue.indexOf('[') > -1 || outId.nodeValue.indexOf('{') > -1) {
                    //为对象或者数组的字符串值
                    var valueToObj = eval('(' + outId.nodeValue + ')');
                    mapParameter[innerId.nodeValue] = valueToObj;
                } else if (valueIsNumber || valueIsNumber === 0) {
                    //为数字的值
                    mapParameter[innerId.nodeValue] = valueIsNumber;
                } else if (outId.nodeValue === 'true') {
                    //bool类型true值
                    mapParameter[innerId.nodeValue] = true;
                } else if (outId.nodeValue === 'false') {
                    //bool类型false值
                    mapParameter[innerId.nodeValue] = false;
                } else {
                    //字符串值
                    mapParameter[innerId.nodeValue] = outId.nodeValue;
                }
            }
        }
    } catch (e) {
        console.log(e.message);
        tips('\u8BFB\u53D6\u5C5E\u6027\u914D\u7F6E\u53C2\u6570\u51FA\u9519\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6\uFF01');
        return false;
    }
    if (mapParameter.LayerType) {
        //读取配置地图切片信息配置文件的路径
        baseMapPath = mapParameter.LayerType;
    } else {
        console.log('\u5730\u56FE\u5730\u56FE\u5207\u7247\u8DEF\u5F84\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6\uFF01');
        tips('\u5730\u56FE\u5730\u56FE\u5207\u7247\u8DEF\u5F84\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6\uFF01');
        return false;
    }
    var mapOptionsXml = {};
    //记录切片相关信息
    var mapLayerXml = [];
    //记录地图服务地址及地图显示的相关信息
    try {
        //不同类型地图的配置
        var xmlDocParent = loadXML(baseMapPath);
        var elementsParent = xmlDocParent.getElementsByTagName(baseMap);
        for (var i0 = 0; i0 < elementsParent.length; i0++) {
            //根目录节点
            var baseMapNode = elementsParent[i0].getAttribute('id');
            var firstNode;
            if (baseMapNode === 'mapOptions') {
                //读取地图切片信息
                firstNode = elementsParent[i0].getElementsByTagName(property);
                if (!getMapConfigs(firstNode, subProperty, mapOptionsXml)) {
                    tips('\u83B7\u53D6\u5730\u56FE\u7684\u5207\u7247\u4FE1\u606F\u5931\u8D25\uFF01');
                    //return false;
                }
                ;
            } else if (baseMapNode === 'baseLayers') {
                //读取地图服务地址及图层显示相关信息
                firstNode = elementsParent[i0].getElementsByTagName(properties);
                if (!getBaseLayer(firstNode, property, subProperty, mapLayerXml)) {
                    tips('\u83B7\u53D6\u5730\u56FE\u670D\u52A1\u5730\u5740\u53CA\u56FE\u5C42\u663E\u793A\u4FE1\u606F\u5931\u8D25\uFF01');
                    return false;
                }
            } else {
                firstNode = '';
                console.log('\u914D\u7F6E\u53C2\u6570\u9519\u8BEF');
            }
        }
    } catch (ex) {
        console.log(ex.message);
        tips('\u8BFB\u53D6\u56FE\u5C42\u914D\u7F6E\u53C2\u6570\u51FA\u9519\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6\uFF01');
        return false;
    }
    try {
        //相关功能的参数配置
        var xmlFunctionDoc = loadXML(functionPropertyConfig);
        var propertyElements = xmlFunctionDoc.getElementsByTagName(functionProperty);
        var nodeInfo = {};
        for (var ii = 0; ii < propertyElements.length; ii++) {
            //获取所有功能配置的参数
            var propertyNode = propertyElements[ii].getElementsByTagName(property);
            for (var iii = 0; iii < propertyNode.length; iii++) {
                var innerName = propertyNode[iii].getElementsByTagName(name)[0].firstChild;
                var outName = propertyNode[iii].getElementsByTagName(value)[0].firstChild;
                if (innerName && outName) {
                    nodeInfo[innerName.nodeValue] = outName.nodeValue;
                }
            }
        }
        g_functionProperty = nodeInfo;
    } catch (ee) {
        console.log(ee.message);
        tips('\u8BFB\u53D6\u529F\u80FD\u5C5E\u6027\u914D\u7F6E\u53C2\u6570\u51FA\u9519\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u6587\u4EF6\uFF01');
        return false;
    }
    mapConfig = mapParameter;
    mapConfig.mapOptions = mapOptionsXml;
    mapConfig.baseLayers = mapLayerXml;    
    return mapConfig;
});

根据xml的属性读取配置信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值