Entonces, encontrar la distancia entre dos puntos en un plano y entre dos puntos en la Tierra es una búsqueda de Google bastante fácil, pero no pude encontrar cómo convertir uno en el otro.
Usando estas dos funciones
function dist = (lat1: number, lng1: number, lat2: number, lng2: number) => { return Math.sqrt((lat1 - lat2) * (lat1 - lat2) + (lng1 - lng2) * (lng1 - lng2)) } function distOnEarthInMeters = (lat1: number, lng1: number, lat2: number, lng2: number) => { if (lat1 === lat2 && lng1 === lng2) return 0 const radianLat1 = lat1 * (Math.PI / 180) const radianLng1 = lng1 * (Math.PI / 180) const radianLat2 = lat2 * (Math.PI / 180) const radianLng2 = lng2 * (Math.PI / 180) const earthRadius = 6378137 const diffLat = radianLat1 - radianLat2 const diffLng = radianLng1 - radianLng2 const sinLat = Math.sin(diffLat / 2) const sinLng = Math.sin(diffLng / 2) const a = Math.pow(sinLat, 2.0) + Math.cos(radianLat1) * Math.cos(radianLat2) * Math.pow(sinLng, 2.0) return Math.floor(earthRadius * 2 * Math.asin(Math.min(1, Math.sqrt(a)))) }Obtengo estos:
dist(-27, -42, -26, -41) === 1.4142135623730951 distOnEarthInMeters(-27, -42, -26, -41) === 149386Pero, ¿puedo convertir uno en el otro sin saber las coordenadas?
hacer que 1.4142135623730951 se convierta en 149386 y 1.4142135623730951 se convierta en 149386
(copiado en https://math.stackexchange.com/questions/4489148 )
Como otros dijeron, este es un problema de matemáticas. Pero la respuesta es no, no puedes encontrarlo. Cada proyección de mapa cambia algunas distancias en el globo. Algunas proyecciones pueden conservar algunas distancias, pero nunca todas.