diff options
Diffstat (limited to 'distance.php')
-rwxr-xr-x | distance.php | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/distance.php b/distance.php new file mode 100755 index 0000000..3d10de4 --- /dev/null +++ b/distance.php @@ -0,0 +1,65 @@ +<?php + +/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ +/*:: :*/ +/*:: This routine calculates the distance between two points (given the :*/ +/*:: latitude/longitude of those points). It is being used to calculate :*/ +/*:: the distance between two locations using GeoDataSource(TM) Products :*/ +/*:: :*/ +/*:: Definitions: :*/ +/*:: South latitudes are negative, east longitudes are positive :*/ +/*:: :*/ +/*:: Passed to function: :*/ +/*:: lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees) :*/ +/*:: lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees) :*/ +/*:: unit = the unit you desire for results :*/ +/*:: where: 'M' is statute miles :*/ +/*:: 'K' is kilometers (default) :*/ +/*:: 'N' is nautical miles :*/ +/*:: Worldwide cities and other features databases with latitude longitude :*/ +/*:: are available at http://www.geodatasource.com :*/ +/*:: :*/ +/*:: For enquiries, please contact sales@geodatasource.com :*/ +/*:: :*/ +/*:: Official Web site: http://www.geodatasource.com :*/ +/*:: :*/ +/*:: GeoDataSource.com (C) All Rights Reserved 2014 :*/ +/*:: :*/ +/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + +//$mydistance = distance(-37.8602828,145.079616,-37.827206, 144.957393,'K'); + +//echo $mydistance; + +function distance($lat1, $lon1, $lat2, $lon2, $unit) { + + $theta = $lon1 - $lon2; + $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); + $dist = acos($dist); + $dist = rad2deg($dist); + $miles = $dist * 60 * 1.1515; + $unit = strtoupper($unit); + + if ($unit == "K") { + return ($miles * 1.609344); + } else if ($unit == "N") { + return ($miles * 0.8684); + } else { + return $miles; + } +} + +function triggerDistance($lat1, $lon1) { +$lat2 = -37.827206; +$lon2 = 144.957393; +$mydistance = distance($lat1,$lon1,$lat2, $lon2,'K'); + +error_log("distance $mydistance"); + +} + +// echo distance(32.9697, -96.80322, 29.46786, -98.53506, "M") . " Miles<br>"; +// echo distance(32.9697, -96.80322, 29.46786, -98.53506, "K") . " Kilometers<br>"; +// echo distance(32.9697, -96.80322, 29.46786, -98.53506, "N") . " Nautical Miles<br>"; + +?> |