<?xml version="1.0" encoding="utf-8" ?>
<map>
<item name ="常平" filename ="mapxml\changpingmap.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];
}
}
}