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

根据xml配置地图服务相关推荐

  1. 《水经注地图服务》下载与安装步骤

    概述 <水经注地图服务>(WeServer)是一款可快速发布全国乃至全球海量卫星影像的地图发布服务产品,该产品完全遵循OGC相关协议标准,是一个基于若干项目成功经验总结的产品.它可以轻松发 ...

  2. windows10下配置nginx服务开机自启动

    windows10下配置nginx服务开机自启动 网站有很多教程,这里赘述一下,补充一点细节 1.下载"Windows Service Wrapper"工具 下载地址:https: ...

  3. Android项目打包,及高德地图服务配置

    前段时间,领导安排了一个Android端功能的任务,开发好了之后问领导打包怎么整,领导也是一脸懵逼,我一个后端开发之前也没实际操作过,于是就百度,由于之前Android开发离职了,打包需要的签名文件也 ...

  4. GeoServer自动发布地图服务

    1 NetCDF气象文件自动发布案例 GeoServer是一个地理服务器,提供了管理页面进行服务发布,样式,切片,图层预览等一系列操作,但是手动进行页面配置有时并不满足业务需求,所以GeoServer ...

  5. Mapbox加载天地图CGCS2000矢量瓦片地图服务

    1.背景 最近在做天地图的项目,要基于MapBox添加CGCS2000矢量切片数据,但是 Mapbox 只支持web 墨卡托(3857)坐标系的数据.Github有专业用户修改了mapbox-gl的相 ...

  6. 利用OpenStreetMap(OSM)数据搭建一个地图服务

    图 利用OSM数据简单发布的北京地图服务   一.OSM是什么 开放街道图(OpenStreetMap,简称OSM)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图(wiki: ...

  7. GeoServer搭建私有地图服务,Cesium引擎加载。

    一.安装JDK 1.安装GeoServer是基于Java的环境,所以需要先装Jdk环境. 2.前往官网下载Java SE 3.下载GeoServer 1.前往官网下载最新稳定版 2.安装GeoServ ...

  8. WebGIS入门--如何做一个简单的校园地图服务网站

    目录 OpenLayer库的配置 在HTML中调用 在JavaScript文件中调用 OpenLayer基础操作 显示地图(天地图API) 百度地图API与天地图API 坐标系转换之百度地图 坐标系转 ...

  9. 百度地图服务详细评测

    综合评测 百度地图是一款功能齐全,支持离线的常用地图服务.其具备以下特点: 1.百度地图是一款免费使用的跨Android,IOS的地图服务 2. 对于客户端而言,其最新版本(baidumapapi_v ...

最新文章

  1. 利用正则表达式去掉html代码
  2. 使用RDLC报表向报表传入参数
  3. GitBook关联GitHub
  4. 全球及中国航空发动机市场动态前景及十四五项目专项调研报告2021-2027年版
  5. php jquery ajax裁剪图照片,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例...
  6. python调用node_在node中执行python脚本
  7. linux桌面环境是什么意思,Linux 黑话解释:什么是桌面环境?
  8. Python-又到了抢票的季节(带验证码识别验证)
  9. 应用C语言编辑画图程序
  10. (31)SystemVerilog语言编写D触发器
  11. 重磅:向996开炮!携程带头居家办公。
  12. MATLAB 图像处理基础(2)
  13. kindle 越狱_越狱您的Kindle,实现简单的屏幕保护程序自定义
  14. 辞职专心造火箭,贝佐斯能追上马斯克吗?
  15. excel 查找重复值方法
  16. reStructuredText 表格快速生成
  17. 免费版企业级杀毒软件mcafee使用报告。
  18. 猿设计2——电商后台全逻辑需求挖掘
  19. 数字组合(算法竞赛进阶指南)
  20. JavaEye五月刊记录

热门文章

  1. Trojan.DL.Win32.Hmir.hl的清除方法 采用驱动提供服务的木马病毒
  2. mysql 查询每个科目分数大于80
  3. 计算机的语言是美式英语,为什么电脑的语言栏一直有两国语言“CH中文(中国)”和“EH英语(美国)”...
  4. 回溯模板+leetcode——78. 子集 + 90. 子集 II
  5. 常用数据库有哪些(附带数据库排名)?
  6. MySQL报错 SELECT list is not in GROUP BY clause and contains nonaggregated column...
  7. WordPress底部添加备案信息小技巧
  8. 《C语言及程序设计初步》网络课程主页
  9. matlab局部放大曲线功能
  10. 〖Python 数据库开发实战 - MySQL篇㉑〗- 数据表的外连接