@ maximus123
Dal momento che non potevo aggiungere msg al tuo ho aperto una nuova discussione.
Ho avuto il tuo stesso problema e avevo realizzato questa classe in PHP.
Devi passare le coordinate dei due punti di google maps come stringhe, incluse le parentesi e ti restituisce la distanza tra i due punti, in linea d'aria.
Distancia::get("(coordinata1_lat,coordinata1_lon)" ,"(coordinata2_lat,coordinata2_lon)");
Codice PHP:
class Distancia {
const R = 6371;
const PIGRECO = 3.1415927;
static function get($coordenadas1, $coordenadas2) {
$latA = self::getLatLon($coordenadas1, 'lat');
$lonA = self::getLatLon($coordenadas1, 'lon');
$latB = self::getLatLon($coordenadas2, 'lat');
$lonB = self::getLatLon($coordenadas2, 'lon');
$lat_alfa = self::PIGRECO * $latA / 180;
$lat_beta = self::PIGRECO * $latB / 180;
$lon_alfa = self::PIGRECO * $lonA / 180;
$lon_beta = self::PIGRECO * $lonB / 180;
$fi = abs($lon_alfa - $lon_beta);
$p = acos(sin($lat_beta) * sin($lat_alfa) +
cos($lat_beta) * cos($lat_alfa) * cos($fi));
$d = $p * self::R;
return($d);
}
private static function getLatLon($coordenadas, $tipo) {
$resultado = "";
if ($tipo == 'lat') {
preg_match("/\((.*?),/", $coordenadas, $resultado);
return substr($resultado[0], 1, -1);
}
if ($tipo == 'lon') {
preg_match("/,(.*?)\)/", $coordenadas, $resultado);
return substr($resultado[0], 1, -1);
}
return false;
}
}