Nie jestem pewien czy o to chodzi.
Najlepszym przykładem tego co mam na myśli są portale ogłoszeniowe, np olx
Czyli po prostu chcesz mieć funkcję do której przekażesz długość i szerokość geograficzną dwóch punktów, i dostaniesz odległość między nimi w linii prostej (nie patrząć na rzeki, drogi, budynki) etc.?
Jeśli tak, to tutaj jest example: https://stackoverflow.com/questions/10053358/measuring-the-distance-between-two-coordinates-in-php
function haversineGreatCircleDistance(
$latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000)
{
// convert from degrees to radians
$latFrom = deg2rad($latitudeFrom);
$lonFrom = deg2rad($longitudeFrom);
$latTo = deg2rad($latitudeTo);
$lonTo = deg2rad($longitudeTo);
$latDelta = $latTo - $latFrom;
$lonDelta = $lonTo - $lonFrom;
$angle = 2 * asin(sqrt(pow(sin($latDelta / 2), 2) +
cos($latFrom) * cos($latTo) * pow(sin($lonDelta / 2), 2)));
return $angle * $earthRadius;
}
Działa dobrze, jeśli tylko któryś z punktów nie jest blisko bieguna (przez problem z precyzją).