Esempio n. 1
0
        static string GetAirportCode(string value, List <Airport> airports, HashSet <string> missing)
        {
            Airport airport;

            if (string.IsNullOrEmpty(value))
            {
                return(null);
            }

            // First, try looking up the airport by (any) airport code.
            if ((airport = Airports.GetAirport(value, AirportCode.Any)) != null)
            {
                airports.Add(airport);
                return(airport.FAA);
            }

            // Next, try matching the common name of the airport.
            if ((airport = Airports.GetAirportByName(value)) != null)
            {
                airports.Add(airport);
                return(airport.FAA);
            }

            // Unknown airport... just return the provided string.
            missing.Add(value);

            return(value);
        }
Esempio n. 2
0
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            // Default to the region for North America
            double minLatitude  = 37.37 - (28.49 / 2);
            double maxLatitude  = 37.37 + (28.49 / 2);
            double minLongitide = -96.24 - (31.025 / 2);
            double maxLongitude = -96.24 + (31.025 / 2);
            bool   initialized  = false;

            foreach (var code in LogBook.GetVisitedAirports())
            {
                Airport airport = Airports.GetAirport(code, AirportCode.FAA);
                if (airport == null)
                {
                    continue;
                }

                if (!initialized)
                {
                    minLongitide = maxLongitude = airport.Longitude;
                    minLatitude  = maxLatitude = airport.Latitude;
                    initialized  = true;
                }
                else
                {
                    minLongitide = Math.Min(minLongitide, airport.Longitude);
                    maxLongitude = Math.Max(maxLongitude, airport.Longitude);
                    minLatitude  = Math.Min(minLatitude, airport.Latitude);
                    maxLatitude  = Math.Max(maxLatitude, airport.Latitude);
                }
            }

            coordinates = new CLLocationCoordinate2D((minLatitude + maxLatitude) / 2, (minLongitide + maxLongitude) / 2);
            double spanLongitude = Math.Abs(maxLongitude - minLongitide);
            double spanLatitude  = Math.Abs(maxLatitude - minLatitude);

            if (initialized)
            {
                spanLongitude = Math.Max(spanLongitude, 1.0) * 1.25;
                spanLatitude  = Math.Max(spanLatitude, 1.0) * 1.25;
            }

            // Get the region for North America
            var region = new MKCoordinateRegion(
                coordinates, new MKCoordinateSpan(spanLatitude, spanLongitude)
                );

            mapView.SetRegion(region, animated);
        }
Esempio n. 3
0
        IEnumerable <Airport> GetAirports(MKCoordinateRegion region)
        {
            if (visited)
            {
                foreach (var code in LogBook.GetVisitedAirports())
                {
                    Airport airport = Airports.GetAirport(code, AirportCode.FAA);
                    if (airport != null)
                    {
                        yield return(airport);
                    }
                }
            }
            else
            {
                foreach (var airport in Airports.GetAirports(region))
                {
                    yield return(airport);
                }
            }

            yield break;
        }