Olá, após um tempinho sem publicar trago uma função que serve para calcular a distância entre dois pontos GPS (com Latitude e Longitude cada). A função é bem simples de utilizar e retorna o resultado em metros.

  1. function distanciaPontosGPS($p1LA, $p1LO, $p2LA, $p2LO) {
  2.     $r = 6371.0;
  3.        
  4.     $p1LA = $p1LA * pi() / 180.0;
  5.     $p1LO = $p1LO * pi() / 180.0;
  6.     $p2LA = $p2LA * pi() / 180.0;
  7.     $p2LO = $p2LO * pi() / 180.0;
  8.        
  9.     $dLat = $p2LA$p1LA;
  10.     $dLong = $p2LO$p1LO;
  11.        
  12.     $a = sin($dLat / 2) * sin($dLat / 2) + cos($p1LA) * cos($p2LA) * sin($dLong / 2) * sin($dLong / 2);
  13.     $c = 2 * atan2(sqrt($a), sqrt(1$a));
  14.        
  15.     return round($r * $c * 1000); // resultado em metros.
  16. }

Como usar:

  1. echo distanciaPontosGPS(-26.91545, -49.063632, -26.917985, -49.061143);

Resultado será: 375