Mega Code Archive

 
Categories / C# / Class Interface
 

Point class

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GeoSyndication.Common {     public class Point     {         #region Private Fields         private readonly double longitude;         private readonly double latitude;         private readonly double altitude;         private string format = "{0} {1}";      // Default Setting, lat, lng          #endregion         #region Public Properties         public double Longitude         {             get { return longitude; }         }         public double Latitude         {             get { return latitude; }         }         public double Altitude         {             get { return altitude; }         }         public string Format         {             get             {                 return format.Replace("{0}", "{lat}").Replace("{1}", "{lng}").Replace("{2}", "{alt}");             }             set             {                 this.format = value.Replace("{lat}", "{0}").Replace("{lng}", "{1}").Replace("{alt}", "{2}");             }         }          #endregion         #region Constructor         public Point(double latitude, double longitude)         {             this.latitude = latitude;             this.longitude = longitude;         }         public Point(double latitude, double longitude, double altitude)         {             this.latitude = latitude;             this.longitude = longitude;             this.altitude = altitude;         }          #endregion         #region Public Methods         public override string ToString()         {             string retVal = string.Empty;             retVal = string.Format(format, latitude.ToString(), longitude.ToString(), altitude.ToString());             return retVal;         }         public static Point[] ParsePoints(string line)         {             List<Point> _line = new List<Point>();             string[] s = line.Split(' ');             if (s.Length % 2 != 0)             {                 throw new ArgumentException("There must be an even number of points in a line or polygon");             }             for (int x = 0; x < s.Length + 1 / 2; x += 2)             {                 Point p = new Point(double.Parse(s[x]), double.Parse(s[x + 1]));                 _line.Add(p);             }             return _line.ToArray();         }         public static Point[] ParsePoints(string line, string format)         {             List<Point> _line = new List<Point>();             string[] s = line.Split(' ');             for (int x = 0; x < s.Length + 1 / 2; x += 2)             {                 Point p = new Point(double.Parse(s[x]), double.Parse(s[x + 1]));                 p.Format = format;                 _line.Add(p);             }             return _line.ToArray();         }          #endregion     } }