Punto más cercano en polilínea
Para el punto 40.73, -74.01 y una ruta de tres vértices, el lugar más cercano de la línea es 40.7227030704, -73.9972969296, en el segundo tramo. También sabrá a qué distancia del inicio de la ruta queda y cuánto se separa usted de ella. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Latitud
- 40,73
- Longitud
- -74,01
- Latitud
- 40,7227030704
- Longitud
- -73,9972969296
- Latitud consultada
- 40,73
- Longitud consultada
- -74,01
Hallar el punto más cercano de una polilínea a una latitud y longitud libre es un primitivo esencial de SIG y enrutamiento: las apps de mapas proyectan un fix GPS sobre el eje de una vía, las herramientas logísticas miden cuán lejos está un vehículo de un corredor planificado y los scripts de topografía indican cuánto ha avanzado usted a lo largo de un camino. Esta herramienta del punto más cercano en polilínea acepta una coordenada WGS84 de consulta y una lista ordenada de vértices, los proyecta a un marco equirectangular local en metros y devuelve la ubicación más cercana en cualquier segmento finito. Obtiene usted la latitud y longitud proyectadas, el índice de segmento base cero, la posición fraccionaria en ese segmento, la distancia a lo largo de la línea desde el primer vértice, la longitud total de la polilínea y la distancia en tierra desde la consulta al punto de anclaje.
Qué significa el punto más cercano en polilínea para rutas geográficas
Una polilínea es una cadena ordenada de segmentos rectos entre vértices. En el espacio geográfico cada vértice es una latitud y una longitud sobre la esfera WGS84, y cada segmento es la cuerda corta entre dos vértices consecutivos tras una proyección cartográfica local. Dado un punto de consulta libre que puede quedar fuera de la ruta, el punto más cercano en la polilínea es la ubicación en cualquiera de esos segmentos que minimiza la distancia en tierra hasta la consulta.
Esa ubicación puede caer en el interior de un segmento, en un vértice donde se unen dos segmentos, o en cualquiera de los extremos del camino completo cuando la consulta queda más allá del inicio o del final. El índice de segmento identifica qué arista sostiene el anclaje, contando desde cero en el primer vértice.
La distancia a lo largo de la línea mide cuánto habría recorrido usted desde el primer vértice hasta el anclaje si caminara la propia polilínea, lo cual difiere de la distancia en línea recta desde la consulta al anclaje. Juntos esos campos responden tanto «¿dónde de la ruta está más cerca de mí?» como «¿a qué distancia a lo largo de la ruta está ese lugar?»
sin exigir un grafo de enrutamiento completo ni una base de red vial.
Cuándo conviene ajustar un punto a una ruta
Productos móviles y de flota proyectan muestras GPS ruidosas sobre un corredor planificado para que la interfaz muestre el progreso a lo largo de una ruta en lugar de un fix libre tembloroso. Operaciones de campo y utilities miden cuán lejos está una cuadrilla o un activo de un oleoducto, un sendero o una línea eléctrica sin levantar un motor completo de topología de red.
Sitios de contenido y educación que compiten por el término punto más cercano en polilínea se benefician de una herramienta gratuita en vivo en el navegador cuyas respuestas coinciden con la automatización de pago sobre el mismo módulo puro. Prefiera vértices lo bastante densos en curvas para que cada segmento sea corto donde la aproximación equirectangular es más fuerte; en polilíneas continentales de miles de kilómetros considere densificar o dividir si la precisión absoluta al metro importa en extremos.
Fije los campos redondeados en las pruebas y obtendrá anclajes reproducibles para mapas, laboratorios LMS y workers en el borde sin hospedar su propio stack GIS.
Qué puede hacer con ella
Anclaje GPS al eje de vía o sendero
Proyecte un fix GPS libre sobre una polilínea de ruta ordenada y muestre lat/lon anclados más cuánto ha avanzado el usuario a lo largo del camino.
Informes de desvío de corredor y cadenamiento
Mida la distancia en tierra desde activos a un oleoducto o alineamiento de sendero e informe el cadenamiento (distancia a lo largo) en tickets de mantenimiento.
Limpieza de trazas y demos de mapas
Reparametrice puntos de traza ruidosos como distancia a lo largo de una polilínea de diseño en scripts ETL o widgets educativos de mapa en vivo.
Preguntas frecuentes
¿Cómo hallo el punto más cercano de una polilínea a un lat/lon?
Envíe lat y lon de consulta más un array polyline de al menos dos vértices {lat, lon}.
¿Qué ocurre si mi polilínea tiene un solo punto?
Una polilínea necesita al menos dos vértices para definir un segmento. Las coordenadas fuera de rango también fallan sin facturarse.
¿Qué diferencia hay entre la distancia a lo largo de la ruta y la distancia hasta ella?
La distancia a lo largo de la ruta es lo que recorrería por la propia línea desde su primer vértice hasta el punto ajustado. La distancia hasta la ruta es la separación en línea recta sobre el terreno entre su punto y ese punto ajustado.
¿El punto más cercano puede ser un vértice o un extremo de la ruta?
Sí. El lugar más cercano puede caer dentro de un tramo, en un vértice donde se unen dos tramos o en el inicio o el final de la ruta, cuando su punto queda más allá de alguno de los extremos.
¿Qué precisión tiene en rutas muy largas?
Cada tramo se mide en un plano local, que funciona mejor con tramos cortos. Ponga suficientes vértices en las carreteras con curvas y divida o densifique las rutas de miles de kilómetros si necesita precisión de metros.
Herramientas relacionadas
Para desarrolladores — acceso por API
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.
Endpoint de API
¿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.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/geo/nearest-point-on-polyline \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}'const res = await fetch("https://api.kit.forhosting.com/geo/nearest-point-on-polyline", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/nearest-point-on-polyline",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/nearest-point-on-polyline", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/nearest-point-on-polyline", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.nearest_point_on_polyline",
"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.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Contrato de entrada, algoritmo, forma de respuesta y errores
Internamente el solucionador toma la media de los vértices de la polilínea como origen equirectangular, convierte cada vértice y la consulta a metros este-norte locales y, para cada segmento finito, proyecta la consulta sobre la recta infinita y acota el parámetro t al intervalo unitario cerrado para que el candidato permanezca en el segmento. Entre todos los segmentos conserva la distancia al cuadrado mínima y, en empates exactos, prefiere el segmento anterior por un contrato estable. Los duplicados consecutivos de longitud cero se omiten una vez existe un segmento real. Envíe un cuerpo JSON con lat y lon del punto de consulta, ambos números finitos en los rangos WGS84 habituales de menos noventa a noventa y de menos ciento ochenta a ciento ochenta, más polyline como un array ordenado de al menos dos vértices con lat y lon cada uno. El opcional radius_m vale por defecto seis millones trescientos setenta y un mil metros para el escalado de la Tierra media. Se aceptan alias de campo como latitude, longitude, lng, vertices, points y path para que las cargas GIS existentes necesiten menos reescritura. El éxito devuelve lat y lon del anclaje, query_lat y query_lon ecoados, segment_index, t, distance_along_m y distance_along_km, distance_to_m y distance_to_km, longitud de polilínea en ambas unidades, vertex_count, segment_count, on_vertex, radius_m y method equirectangular_polyline. Coordenadas fuera de rango, menos de dos vértices, números no finitos y polilínea ausente provocan invalid_input y no se facturan.
Dónde una API de punto más cercano en polilínea aporta valor
Pipelines de datos que limpian trazas importadas usan el anclaje más distance_along_m para reparametrizar puntos como cadenamiento a lo largo de un alineamiento de diseño. Como la implementación es parse puro de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red de salida, y la validación fallida no consume saldo.
Preguntas técnicas
¿Qué es segment_index?
Un índice base cero de la arista de la polilínea que contiene el punto más cercano. El segmento 0 va del primer vértice al segundo, el 1 del segundo al tercero, y así sucesivamente.
¿Cómo se mide la distancia a lo largo de la línea?
distance_along_m es la longitud en tierra desde el primer vértice hasta el punto de anclaje siguiendo los segmentos de la polilínea, no la distancia en línea recta desde la consulta al anclaje.
¿Cuánto cuesta la herramienta del punto más cercano en polilínea?
La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.