summaryrefslogtreecommitdiff
path: root/Data/Beacon.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Data/Beacon.cs')
-rw-r--r--Data/Beacon.cs140
1 files changed, 140 insertions, 0 deletions
diff --git a/Data/Beacon.cs b/Data/Beacon.cs
new file mode 100644
index 0000000..fe9314a
--- /dev/null
+++ b/Data/Beacon.cs
@@ -0,0 +1,140 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Drawing;
+using System.Xml.Serialization;
+using System.IO;
+
+namespace Data
+{
+ public class Beacon
+ {
+ #region Attributes
+
+ public static float Ratio = Config.coordinatesRatio;
+
+ private string _code;
+ private string _type;
+ private double _lat;
+ private double _lon;
+ private bool _isSelected = false;
+
+ #endregion
+
+ #region Constructor
+
+ public Beacon(pointsPoint beacon)
+ {
+ this._code = beacon.code;
+ this._type = beacon.type;
+ this._lat = beacon.lat;
+ this._lon = beacon.lon;
+ }
+
+ #endregion
+
+ #region Methods
+
+ public void Draw(Graphics g)
+ {
+ //Pen drawBeaconsPen = new Pen(Config.drawBeaconCodeColor, 0.1f);
+ SolidBrush drawBeaconBrush = new SolidBrush(Config.drawBeaconColor);
+ SolidBrush drawBeaconCodeBrush = new SolidBrush(Config.drawBeaconCodeColor);
+ Font beaconsCodesFont = Config.unselectedBeaconsCodesFont;
+
+ if (this._isSelected)
+ {
+ //drawBeaconsPen = new Pen(Config.drawSelectedBeaconCodeColor, 0.1f);
+ drawBeaconBrush = new SolidBrush(Config.drawSelectedBeaconColor);
+ drawBeaconCodeBrush = new SolidBrush(Config.drawSelectedBeaconCodeColor);
+ beaconsCodesFont = Config.selectedBeaconsCodesFont;
+ }
+
+ PointF locationPointF = this.toPointF();
+ if (this.Type != "unpublished")
+ {
+ //g.DrawEllipse(drawBeaconsPen, (float)PanAndZoomX(locationPointF.X / Ratio), (float)PanAndZoomY(locationPointF.Y / Ratio), Config.beaconsCirclesSize, Config.beaconsCirclesSize);
+ g.FillEllipse(drawBeaconBrush, (float)PanAndZoomX(locationPointF.X / Ratio), (float)PanAndZoomY(locationPointF.Y / Ratio), Config.beaconsCirclesSize, Config.beaconsCirclesSize);
+ g.DrawString(this.Code, beaconsCodesFont, drawBeaconCodeBrush, new PointF((float)PanAndZoomX(locationPointF.X / Ratio) + 5, (float)PanAndZoomY(locationPointF.Y / Ratio) + 5));
+ }
+ }
+
+ public PointF toPointF()
+ {
+ return MathCautra.ToCautra4(this._lat, this._lon);
+ }
+
+ #endregion
+
+ #region Getters and Setters
+
+ public string Code
+ {
+ get { return _code; }
+ set { _code = value; }
+ }
+
+ public string Type
+ {
+ get { return _type; }
+ set { _type = value; }
+ }
+
+ public double Lat
+ {
+ get { return _lat; }
+ set { _lat = value; }
+ }
+
+ public double Lon
+ {
+ get { return _lon; }
+ set { _lon = value; }
+ }
+
+ public bool isBeaconSelected
+ {
+ get { return _isSelected; }
+ set { _isSelected = value; }
+ }
+
+ #endregion
+
+ #region Delegate Pan And Zoom
+
+ public delegate double PanAndZoom(double input);
+
+ [NonSerialized]
+ static public PanAndZoom PanAndZoomX;
+ [NonSerialized]
+ static public PanAndZoom PanAndZoomY;
+
+ #endregion
+
+ #region createList
+
+ public static Beacon[] LoadBeaconsFile(string fileName)
+ {
+ XmlSerializer serializer = new XmlSerializer(typeof(points));
+ TextReader reader = new StreamReader(fileName);
+
+ Beacon[] Beacons = null;
+ if (reader != null)
+ {
+ points beaconsXml = (points)serializer.Deserialize(reader);
+ reader.Close();
+ Beacons = new Beacon[beaconsXml.Items.Length];
+ int indexSec = 0;
+ foreach (pointsPoint s in beaconsXml.Items)
+ {
+ Beacons[indexSec++] = new Beacon(s);
+ //Console.WriteLine("Balise : " + s.code + " --> lat : " + s.lat + " & lon : " + s.lon);
+ }
+ //Console.WriteLine("Beacons : " + beaconsXml.Items.Length);
+ }
+ return Beacons;
+ }
+ #endregion
+ }
+}