summaryrefslogtreecommitdiff
path: root/distance.php
diff options
context:
space:
mode:
Diffstat (limited to 'distance.php')
-rwxr-xr-xdistance.php65
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>";
+
+?>