Пример #1
0
        public ProcessedCacheData Process(CacheData cacheData)
        {
            var startPoint       = new Point(cacheData.OriginalCoords.Lat, cacheData.OriginalCoords.Lng);
            var destinationPoint = calculator.CalculateOrthodromicLine(startPoint, cacheData.Bearing, cacheData.Distance).Coordinate2;

            return(new ProcessedCacheData(cacheData, new LatLng(destinationPoint.Latitude, destinationPoint.Longitude)));
        }
Пример #2
0
        public void CalculateOrthodromicDestination(double lat1, double lon1, double angle, double distance, double lat2, double lon2)
        {
            var calculator = new SpheroidCalculator(Spheroid.Wgs84);
            var result     = calculator.CalculateOrthodromicLine(new Point(lat1, lon1), angle, new Distance(distance, DistanceUnit.Nm).SiValue);

            Assert.That(result.Coordinate2.Latitude, Is.EqualTo(lat2).Within(Millionth));
            Assert.That(result.Coordinate2.Longitude, Is.EqualTo(lon2).Within(Millionth));
        }
Пример #3
0
        public void CalculateOrthodromicCourse(double lat1, double lon1, double lat2, double lon2, double c12, double c21)
        {
            var calculator = new SpheroidCalculator(Spheroid.Wgs84);
            var result     = calculator.CalculateOrthodromicLine(new Point(lat1, lon1), new Point(lat2, lon2));

            Assert.That(result.Bearing12, Is.EqualTo(c12).Within(Millionth));
            Assert.That(result.Bearing21, Is.EqualTo(c21).Within(Millionth));
        }
Пример #4
0
        public void Bug7(double lat1, double lon1, double lat2, double lon2)
        {
            var calculator = new SpheroidCalculator(Spheroid.Wgs84);
            var result     = calculator.CalculateOrthodromicLine(new Point(lat1, lon1), new Point(lat2, lon2));

            Console.WriteLine(result.Distance);
            Console.WriteLine(result.Bearing12);
            Console.WriteLine(result.Bearing21);
        }