ForHosting KIT · Utilidades de desarrollo

Puntos k vecinos más cercanos por distancia geodésica

Encuentre los puntos geográficos más próximos a una coordenada de consulta sin configurar una base de datos espacial.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Indique latitud y longitud, una lista de coordenadas candidatas y cuántos resultados necesita. La capacidad calcula la distancia de círculo máximo hasta cada candidato, ordena los resultados de menor a mayor distancia y devuelve los primeros k con sus índices de origen y etiquetas opcionales. Su orden determinista resulta adecuado para búsquedas de ubicaciones, preparación de rutas, comprobaciones de proximidad y procesos de datos reproducibles.

Prepare una consulta y un conjunto de candidatos claros

Comience con una coordenada de consulta en grados decimales y una lista de entre uno y diez mil puntos candidatos. La latitud debe estar entre -90 y 90, y la longitud entre -180 y 180. Cada candidato sigue las mismas reglas y puede llevar una etiqueta, por ejemplo el nombre de una tienda, un código de almacén, un sensor o una ciudad. Las etiquetas se copian al resultado, pero nunca afectan a la clasificación. Elija k como entero positivo que no supere el número de candidatos. Este contrato explícito evita búsquedas parciales ambiguas y hace que los registros incorrectos fallen pronto con un error útil. Mantenga todas las coordenadas en grados decimales, como suele hacerse en mapas web y exportaciones GPS. Si el origen emplea grados, minutos y segundos o un sistema proyectado, conviértalo antes. Cuando dos distancias coinciden, se conserva el orden original de entrada para ofrecer resultados reproducibles.

Interprete la clasificación por círculo máximo

El cálculo representa la Tierra como una esfera de radio medio 6,371.0088 kilómetros. Para cada candidato aplica la relación de haversine y calcula el ángulo central con atan2, un método estable tanto para trayectos muy cortos como para puntos casi opuestos. El valor distance_km se redondea a seis decimales y después se ordenan los candidatos de forma ascendente. Se trata de la distancia sobre la superficie del globo, no de una línea recta a través de la Tierra, una ruta por carretera ni una medición en una proyección cartográfica local. El método gestiona de forma natural el cambio de longitud junto a la línea internacional de fecha y funciona en ambos polos. El modelo esférico sirve para búsquedas globales, descubrimiento, despacho aproximado y creación de listas cortas. Para trabajos topográficos, rutas, altitud, fronteras u obstáculos, use este resultado como preselección y aplique después un cálculo especializado. El índice permite enlazar cada vecino con el registro original.

Integre la lista ordenada en un proceso mayor

El resultado de vecinos cercanos suele iniciar una decisión, no terminarla. Un localizador puede pedir las cinco sucursales más próximas y después filtrar por horario o existencias. Un servicio logístico puede preseleccionar depósitos antes de enviar solo esos candidatos a un motor de rutas. Un panel ambiental puede asociar una observación con los sensores cercanos y conservar las distancias para controlar la calidad. Como la función no usa red, azar, estado almacenado ni la hora actual, una entrada idéntica produce una salida idéntica. Así puede almacenar resultados en caché, probar integraciones con ejemplos fijos o reproducir una clasificación durante una auditoría. El límite declarado mantiene previsible la ejecución: se mide cada candidato una vez y se ordena un conjunto acotado. Para colecciones enormes o que cambian a menudo conviene un índice espacial. Para listas compactas enviadas en cada solicitud, esta capacidad evita configurar índices y entrega una estructura JSON transparente que puede pasar directamente a otra tarea.

Cree una preselección de sucursales

Devuelva las tiendas o centros más próximos antes de filtrar por existencias, horario o disponibilidad de citas.

Asocie lecturas con sensores

Encuentre las estaciones de medición cercanas y conserve distancias e índices de origen para validaciones posteriores.

Prepare candidatos para rutas

Reduzca una lista de depósitos o puntos a los más próximos antes de solicitar rutas de carretera más costosas.

¿Cuánto cuesta una solicitud?

Cada solicitud de API cuesta $0.002. El mismo cálculo determinista también puede ejecutarse en el navegador.

¿Qué fórmula de distancia se utiliza?

Se emplea un cálculo de círculo máximo basado en haversine con el radio terrestre medio de 6,371.0088 kilómetros.

¿Cómo se ordenan las distancias iguales?

Los empates conservan el orden de entrada mediante los índices de origen, que comienzan en cero.

¿Puede k superar el tamaño de la lista?

No. k debe ser un entero positivo y no puede superar el número de puntos proporcionados.

¿Calcula la distancia por carretera?

No. Calcula distancia sobre una esfera; no considera carreteras, tiempo de viaje, altitud, fronteras ni otros límites de ruta.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/geo/k-nearest-neighbors

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/geo/k-nearest-neighbors \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lat":40.4168,"lon":-3.7038,"points":[{"label":"Toledo","lat":39.8628,"lon":-4.0273},{"label":"Segovia","lat":40.9429,"lon":-4.1088},{"label":"Guadalajara","lat":40.6337,"lon":-3.1674}],"k":2}'
{
  "lat": 40.4168,
  "lon": -3.7038,
  "points": [
    {
      "label": "Toledo",
      "lat": 39.8628,
      "lon": -4.0273
    },
    {
      "label": "Segovia",
      "lat": 40.9429,
      "lon": -4.1088
    },
    {
      "label": "Guadalajara",
      "lat": 40.6337,
      "lon": -3.1674
    }
  ],
  "k": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.k_nearest_neighbors",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_items10000
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →