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

393
Visualizações
Calcular un área circular usando Lat/Long como un punto en el medio con un radio de cualquier longitud usando Javascript

Si tengo la latitud y la longitud de una ubicación específica y necesito devolver todos los pueblos/ciudades que se encuentran a cierta distancia de esta ubicación, por ejemplo, de 1 a 500 millas como texto en una página web. ¿Cómo haría esto en Javascript junto con https://positionstack.com/ ??

ingrese la descripción de la imagen aquí

Enviar una solicitud GET con el nombre de un lugar específico a positiontack.com

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para un cálculo exacto (bueno, la tierra no es exactamente esférica ...) necesitarás pasar por la ecuación de distancia esférica que se encuentra aquíhttps://www.geeksforgeeks.org/program-distance-two-points-earth

 const [sin,cos]=["sin","cos"].map(fn=>x=>Math[fn](x/180*Math.PI)), // sin, cos in degree r = 3963, // earth radius in miles (in km: 6371) dist = r * Math.acos(sin(lat0)*sin(lat) + cos(lat0)*cos(lat)*cos(long-long0))

Por lo tanto, tendría que calcular la distancia desde el punto central para el posible par latitud/longitud para determinar si la distancia es menor o mayor que 500 millas.

 const places=[ ["Ottawa",45.43026089850648, -75.70148893316303], ["Montreal",45.523098477377275, -73.63711795099447], ["Montpelier,VT",44.25960673881783, -72.58589897991801], ["Charleston,SC",32.781829336634694, -79.95973326005715], ["Atlanta,GA",33.76477968890186, -84.39589310326373]], lat0=38.8977597229071, long0=-77.03654054271286, // White House coords. r=3963, // earth's radius [sin,cos]=["sin","cos"].map(fn=>x=>Math[fn](x/180*Math.PI)), // sin(deg), cos(deg) sinlat0=sin(lat0),coslat0=cos(lat0), showDist=(place,lat,long)=>{ const dist = r * Math.acos(sinlat0*sin(lat) + coslat0*cos(lat)*cos(long-long0)) console.log(place,dist.toFixed(2)); } console.log("Distances from the White House (in miles):"); places.forEach(p=>showDist(...p)); console.log("\nOr, taking output from https://positionstack.com:"); const d={"data":[{"latitude":40.68295,"longitude":-73.9708,"type":"locality","name":"New York","number":null,"postal_code":null,"street":null,"confidence":1,"region":"New York","region_code":"NY","county":"Kings County","locality":"New York","administrative_area":null,"neighbourhood":null,"country":"United States","country_code":"USA","continent":"North America","label":"New York, NY, USA"},{"latitude":40.777048,"longitude":-73.967596,"type":"borough","name":"Manhattan","number":null,"postal_code":null,"street":null,"confidence":1,"region":"New York","region_code":"NY","county":"New York County","locality":"New York","administrative_area":null,"neighbourhood":null,"country":"United States","country_code":"USA","continent":"North America","label":"Manhattan, New York, NY, USA"},{"latitude":40.775105,"longitude":-73.968777,"type":"county","name":"New York County","number":null,"postal_code":null,"street":null,"confidence":0.4,"region":"New York","region_code":"NY","county":"New York County","locality":null,"administrative_area":null,"neighbourhood":null,"country":"United States","country_code":"USA","continent":"North America","label":"New York County, NY, USA"}]}; d.data.forEach(p=>showDist(p.name,p.latitude,p.longitude))

about 4 years ago · Juan Pablo Isaza 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