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的属性读取配置信息