Cómo encontrar la distancia entre dos puntos en un mapa usando JavaScript (TypeScript)
Si se tienen las coordenadas de dos puntos en un mapa, calcular la distancia entre ellos es bastante sencillo. Este tipo de cálculo se utiliza habitualmente en aplicaciones de mapas, servicios de entrega, sistemas de navegación y funciones basadas en la ubicación. En este ejemplo, nos centraremos en determinar la distancia mediante coordenadas geográficas como la latitud y la longitud. Estos valores nos permiten trabajar con posiciones reales en la superficie terrestre y obtener resultados precisos.
Para calcular la distancia, utilizaremos la fórmula de Haversine, un conocido método matemático para medir la distancia entre dos puntos de una esfera. Dado que la Tierra no es plana, los cálculos lineales simples no son lo suficientemente precisos para este propósito. La fórmula de Haversine tiene en cuenta la curvatura de la Tierra y proporciona una aproximación fiable para la mayoría de los casos prácticos. Esto la convierte en una opción popular en muchos proyectos relacionados con la geolocalización.
En nuestro ejemplo, la distancia final se calculará en metros, lo cual resulta útil para distancias cortas y medias, como rutas a pie o navegación urbana. Si se necesita trabajar con distancias más largas, la misma fórmula se puede adaptar fácilmente para obtener valores en kilómetros. También puede modificar la salida según los requisitos de su aplicación.
El cálculo se implementará en TypeScript, lo que añade un tipado fuerte y una mejor legibilidad al código. Esto facilita el mantenimiento de la solución y la hace más segura en proyectos de mayor envergadura.
TypeScript
type Coord = {
lat: number;
lon: number;
};
// Constant for projection (Earth's radius in meters)
const EARTH_RADIUS = 6371000;
// Converting degrees to radians
function degToRad(deg: number) {
return (deg * Math.PI) / 180;
}
function haversineDistance (point1: Coord, point2: Coord) {
const { lat: lat1, lon: lon1 } = point1;
const { lat: lat2, lon: lon2 } = point2;
const lat1Rad = degToRad(lat1);
const lon1Rad = degToRad(lon1);
const lat2Rad = degToRad(lat2);
const lon2Rad = degToRad(lon2);
const deltaLat = lat2Rad - lat1Rad;
const deltaLon = lon2Rad - lon1Rad;
// Haversine formula
const a =
Math.sin(deltaLat / 2) ** 2 +
Math.cos(lat1Rad) * Math.cos(lat2Rad) * Math.sin(deltaLon / 2) ** 2;
const c = 2 * Math.asin(Math.sqrt(a));
return Math.round(EARTH_RADIUS * c);
}
Publicaciones similares:
-
Reloj simple de JavaScript
Existen muchos ejemplos de implementación de relojes usando JavaScript en Internet. Las opciones de implementación pueden ser diferentes, pero por lo general son similare...
-
Cómo crear un plugin jQuery personalizado
La ventaja del plugin jQuery es que puedes usar el mismo código varias veces para diferentes objetos. En este caso, no es necesario copiar y pegar el código. Además, pued...
-
Menú drop down (jQuery)
El menú drop down se puede hacer sin JavaScript, solo con la ayuda de CSS. Con :hover. Pero el menú de JavaScript tiene sus ventajas. La más importante es el retraso en l...
Leave a Reply