using System; private 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; } return (dist); } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //:: 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); } Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, "M")); Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, "K")); Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, "N"));
Monday, March 22, 2010
Distance Calculation using Latitude and Longitude in C#
ZIPCodeWorld.com provides this routine to calculate the
distance between two points (given the latitude/longitude of those
points) in C#. It is being used to calculate distance between two points
lat1, long1 and lat2, long2 and uses radius of earth in kilometers or
miles as an argurments using our ZIPCodeWorld(TM) and
PostalCodeWorld(TM) products which offer the United States ZIP codes,
Canadian Postal Codes, Mexican Postal Codes and North American Area
Codes database subscription and solution services.
-
The following article discusses the WPF command binding feature with relation to Mouse clicks. One of WPF powerful features is the bindin...
-
SQL Server has never been short of ways to read from and write to files and it is always better to use the standard techniques provided b...
-
In this article we will look at the basics of Angular.Js. This is the first part of an article series. The main objective of this series i...