Example #1
0
 private void ChangeAerodrome(AerodromePoint e)
 {
     _aerodromePoint = e;
     _coordinateHelper.LatLonToPixel(e.NavigationPoint.GeoCoordinate.Latitude, e.NavigationPoint.GeoCoordinate.Longitude, out var px, out var py);
     zzz.Angle = 360 - e.AerodromeInfo.Runway.Heading;
     Dispatcher.Invoke(() => Canvas.SetLeft(this, px));
     Dispatcher.Invoke(() => Canvas.SetTop(this, py));
 }
        private Point GetXy()
        {
            var lat = _aerodromePoint.NavigationPoint.GeoCoordinate.Latitude;
            var lon = _aerodromePoint.NavigationPoint.GeoCoordinate.Longitude;

            _coordinateHelper.LatLonToPixel(lat, lon, out var px, out var py);
            return(new Point(px, py));
        }
Example #3
0
        private AerodromePoint PrepareAerodromePoint(Aerodrome aerodrome)
        {
            _coordinateHelper.LatLonToPixel(aerodrome.Latitude, aerodrome.Longitude, out var px, out var py);
            AerodromePoint aerodromePoint = new AerodromePoint();

            aerodromePoint.NavigationPoint.Type                    = 1;
            aerodromePoint.NavigationPoint.GeoCoordinate.H         = aerodrome.Altitude;
            aerodromePoint.NavigationPoint.GeoCoordinate.Latitude  = aerodrome.Latitude;
            aerodromePoint.NavigationPoint.GeoCoordinate.Longitude = aerodrome.Longitude;

            PrepareThreshold(aerodromePoint, aerodrome);
            PrepareLocalizer(aerodromePoint, aerodrome);
            PrepareGlideSlope(aerodromePoint, aerodrome);
            PrepareLocatorMiddle(aerodromePoint, aerodrome);
            PrepareLocatorOuter(aerodromePoint, aerodrome);

            var name = aerodrome.Name.ToCharArray();

            name.CopyTo(aerodromePoint.AerodromeInfo.Name, 0);
            var country = aerodrome.Country.ToCharArray();

            country.CopyTo(aerodromePoint.AerodromeInfo.Country, 0);
            var rusname = aerodrome.Rusname.ToCharArray();

            rusname.CopyTo(aerodromePoint.AerodromeInfo.RusName, 0);
            aerodromePoint.AerodromeInfo.Runway.Width   = aerodrome.Runway[0].Width;
            aerodromePoint.AerodromeInfo.Runway.Length  = aerodrome.Runway[0].Length;
            aerodromePoint.AerodromeInfo.Runway.Heading = aerodrome.Runway[0].DirectCourse.Threshold.Heading;
            aerodromePoint.Guid = new Guid(aerodrome.Guid);

            if (aerodrome.Name == "Lipetsk")
            {
                aerodromePoint.AerodromeInfo.ActiveAerodrome = true;
                aerodromePoint.NavigationPoint.Measure.Psi   = aerodrome.Runway[0].DirectCourse.Threshold.Heading;
            }
            return(aerodromePoint);
        }