Ejemplo n.º 1
0
        public static void NearestAeroplane(string latitude, string longitude)
        {
            double lat = AeroTracker.GetCoordinate(latitude);
            double lon = AeroTracker.GetCoordinate(longitude);
            var    response = AeroTracker.GetAPIData();
            var    time = response.Time; var states = response.States;
            var    aeroList = AeroTracker.StatesToAero(states);
            var    nearest  = AeroTracker.GetNearest(aeroList, lat, lon);

            AeroTracker.DisplayNearest(nearest, lat, lon);
        }
Ejemplo n.º 2
0
        private static List <Aero> StatesToAero(List <List <object> > states)
        {
            var aeroList = new List <Aero>();

            foreach (var state in states)
            {
                try { aeroList.Add(AeroTracker.CreateAero(state)); }
                catch (InvalidCastException) { continue; }
                catch (NullReferenceException) { continue; }
            }
            return(aeroList);
        }
Ejemplo n.º 3
0
        private static Aero GetNearest(List <Aero> aeroList, double lat, double lon)
        {
            Aero aero;
            Aero nearest = null;

            for (var i = 0; i < aeroList.Count; i++)
            {
                aero = aeroList[i];
                if (i == 0)
                {
                    aero.RelativeGeoDistance = AeroTracker.GeoDistance(lat, lon, aero.Latitude, aero.Longitude);
                    nearest = aero;
                    continue;
                }
                if (nearest == null)
                {
                    throw new NullReferenceException("Could not find nearest during loop");
                }

                double latTol = Math.Max(nearest.Latitude, lat) - Math.Min(nearest.Latitude, lat);
                double lonTol = Math.Max(nearest.Longitude, lon) - Math.Min(nearest.Longitude, lon);
                if (AeroTracker.AeroWithinTol(aero, lat, lon, latTol, lonTol))
                {
                    aero.RelativeGeoDistance = AeroTracker.GeoDistance(lat, lon, aero.Latitude, aero.Longitude);
                    if (aero.RelativeGeoDistance < nearest.RelativeGeoDistance)
                    {
                        nearest = aero;
                    }
                }
            }
            if (nearest == null)
            {
                throw new NullReferenceException("Could not find nearest during return");
            }
            return(nearest);
        }
Ejemplo n.º 4
0
        private static double GetCoordinate(string coord)
        {
            var values = coord.Split(null);

            return(AeroTracker.GetLocation(values) * AeroTracker.GetSign(values));
        }
Ejemplo n.º 5
0
 static void Main(string[] args)
 {
     AeroTracker.NearestAeroplane("44.6", "32.6");
     Console.ReadLine();
     Console.ReadLine();
 }