Distance Util : Geometry « Development Class « C# / C Sharp






Distance Util

         
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace TrailMap.Utils
{
    public class DistanceUtil
    {
        #region Singlton
        private static DistanceUtil m_inst = null;
        public static DistanceUtil Inst
        {
            get
            {
                if (m_inst == null)
                {
                    m_inst = new DistanceUtil();
                }
                return m_inst;
            }
        } 
        #endregion

        public double Distance(double lat1, double lon1, double lat2, double lon2, char unit)
        {
            double theta = lon1 - lon2;
            double dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
            dist = Math.Acos(dist);
            dist = rad2deg(dist);
            dist = dist * 60 * 1.1515;
            if (unit == 'K')
            {
                dist = dist * 1.609344;
            }
            else if (unit == 'N')
            {
                dist = dist * 0.8684;
            }

            if (dist > Double.MinValue && dist < Double.MaxValue)
            {
                return (dist);
            }
            else
            {
                return 0.0;
            }

        }

        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        //::  This function converts decimal degrees to radians             :::
        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        private double deg2rad(double deg)
        {
            return (deg * Math.PI / 180.0);
        }

        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        //::  This function converts radians to decimal degrees             :::
        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        private double rad2deg(double rad)
        {
            return (rad / Math.PI * 180.0);
        }
    }
}

   
    
    
    
    
    
    
    
    
  








Related examples in the same category

1.Convert Meters To Inches
2.Convert Meters To Miles
3.Get Steps FromD istance And Stride
4.Convert Miles To Meters
5.PointD
6.Calculate Gradient Angle
7.Convert Meters To Feet
8.Get distance between two points
9.Tests if two line segments intersect or not.
10.Sorts a graph by the dependencies.
11.Degrees To Radians
12.Radians To Degrees
13.Angles Difference
14.Degrees To Radians and Radians To Degrees
15.Get Distance From Steps
16.Meter to feet and feet to Mile
17.Distance From Point To Line