Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

253
Visualizações
Compruebe si una latitud y longitud están dentro de un círculo en PHP

Pregunta original Comprobar si una latitud y longitud está dentro de un círculo

Me gustaría saber cómo se puede lograr esto usando PHP. Tengo una serie de latitudes y longitudes y me gustaría probarlas con otra serie de latitudes/longitudes para dar un escenario verdadero/falso

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

He preparado el fragmento de código de muestra para usted. Está funcionando bien para mí. Siéntete libre de adaptarte con tu propia lógica.

 $lat1 = "10.5900627"; $lon1 = "77.1933317"; $lat2 = "10.6068507"; $lon2 = "77.117246"; function distance($lat1, $lon1, $lat2, $lon2, $unit) { if (($lat1 == $lat2) && ($lon1 == $lon2)) { return 0; } else { $theta = $lon1 - $lon2; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return ($miles * 1.609344); } else if ($unit == "N") { return ($miles * 0.8684); } else { return $miles; } } } if(distance($lat1, $lon1, $lat2, $lon2, "K") < 10) { echo "True"; } else { echo "False"; }

Si el resultado de 'K' es inferior a 10 km, obtendrá el resultado como "Verdadero". De lo contrario, se devolverá 'Falso' como resultado.

over 4 years ago · Santiago Trujillo Relatório

0

Lo haría de esta manera, primero necesitaré calcular la distancia entre dos puntos (este es un método similar al de Google Maps: https://stackoverflow.com/a/53069194/7071905 ):

 function computeDistance($lat1, $lng1, $lat2, $lng2, $radius) { static $x = M_PI / 180; $lat1 *= $x; $lng1 *= $x; $lat2 *= $x; $lng2 *= $x; $distance = 2 * asin(sqrt(pow(sin(($lat1 - $lat2) / 2), 2) + cos($lat1) * cos($lat2) * pow(sin(($lng1 - $lng2) / 2), 2))); return $distance * $radius; }

Luego, necesitaré una función simple con el punto base (el centro) para volver verdadero cuando la distancia sea inferior a 10 kilómetros ($ KM):

 function isWithinCircle($lat, $lng, $KM = 10): bool { $baseLat = 0; $baseLng = 0; $radius = 6378137; return computeDistance($baseLat, $baseLng, $lat, $lng, $radius) <= $KM; }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda