<?xml version="1.0" encoding="utf-8" ?> <map> <item name ="常平" filename ="mapxmlchangpingmap.xml" range="114.006219,22.995155|114.007297,22.995837|114.017699,22.987103|114.016585,22.986189" centerpoint="114.014234, 22.98954" zoom="19"/> </map>
using PTool; using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; using System.Text; using System.Xml; namespace DCZY.StationMap { public class MapInfoManager { private Dictionary<string,MapInfo> _infocollection = null; private string _strfilename = string.Empty; private static MapInfoManager _map = null; public static MapInfoManager Get() { if (_map == null) { _map = new MapInfoManager(); } return _map; } private MapInfoManager() { _strfilename = ConfigurationManager.AppSettings["map"]; } public void Init() { if (!File.Exists(_strfilename)) { return; } XmlDocument xml = new XmlDocument(); xml.Load(_strfilename); XmlNodeList xnl = xml.SelectNodes("map/item"); _infocollection = new Dictionary<string, MapInfo>(); foreach (XmlNode xn in xnl) { try { MapInfo info = new MapInfo(); if (!DBConvert.IsDBNull(xn.Attributes["name"])) { info.Name = DBConvert.ToString(xn.Attributes["name"].InnerText); } if (!DBConvert.IsDBNull(xn.Attributes["filename"])) { info.FileName = DBConvert.ToString(xn.Attributes["filename"].InnerText); } //if (!DBConvert.IsDBNull(xn.Attributes["url"])) //{ // info.Url = DBConvert.ToString(xn.Attributes["url"].InnerText); //} if (!DBConvert.IsDBNull(xn.Attributes["range"])) { info.Range = DBConvert.ToString(xn.Attributes["range"].InnerText); } if (!DBConvert.IsDBNull(xn.Attributes["image"])) { info.Imagename = DBConvert.ToString(xn.Attributes["image"].InnerText); } if (!DBConvert.IsDBNull(xn.Attributes["centerpoint"])) { info.Centerpoint = DBConvert.ToString(xn.Attributes["centerpoint"].InnerText); } if (!DBConvert.IsDBNull(xn.Attributes["zoom"])) { info.Zoom = DBConvert.ToString(xn.Attributes["zoom"].InnerText); } _infocollection.Add(info.Name, info); } catch { } } } public MapInfo GetMap(string station) { if (_infocollection == null) return null; if (!_infocollection.ContainsKey(station)) return null; return _infocollection[station]; } } }