phpgeo es una libreria simple para el cálculo de distancias entre las coordenadas geográficas con alta precisión. Por ejemplo:
[php]
use Location\Coordinate;
use Location\Distance\Vincenty;
$coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit
$coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit
$calculator = new Vincenty();
echo $calculator->getDistance($coordinate1, $coordinate2); // returns 128130.850 (meters; ≈128 kilometers)
[/php]
Esto funciona muy bien en aplicaciones que hacen uso de datos de localización. Para obtener las coordenadas, puede utilizar la API de HTML5 Geolocalización, API de Yahoo, Google, etc.