Skip to content

Commit dc988d6

Browse files
committed
added distance method
1 parent 43c0e99 commit dc988d6

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/Util.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,29 @@ public static function truncate($string, $limit, $break = " ", $pad = "…"
486486

487487
return $string;
488488
}
489+
490+
// calculate position distance (haversine formula) in miles
491+
public static function distance($origin, $dest, $radius = 6371) {
492+
493+
if (!(isset($origin[0]) && isset($origin[1]))) return false;
494+
if (!(isset($dest[0]) && isset($dest[1]))) return false;
495+
496+
$lat_orig = $origin[0];
497+
$lng_orig = $origin[1];
498+
499+
$lat_dest = $dest[0];
500+
$lng_dest = $dest[1];
501+
502+
$d_lat = deg2rad($lat_dest - $lat_orig);
503+
$d_lng = deg2rad($lng_dest - $lng_orig);
504+
505+
$a = sin($d_lat/2) * sin($d_lat/2) + cos(deg2rad($lat_orig)) * cos(deg2rad($lat_dest)) * sin($d_lng/2) * sin($d_lng/2);
506+
$c = 2 * asin(sqrt($a));
507+
$d = $radius * $c;
508+
509+
return $d;
510+
}
511+
489512
/**
490513
* Get the client's IP Address
491514
* @return string IP address string

0 commit comments

Comments
 (0)