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)); }
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); }