155 votos

Algoritmo para compensar una latitud/longitud en cierta cantidad de metros

Estoy buscando un algoritmo que cuando se le da un par de latitud y longitud y una traslación vectorial en metros en coordenadas cartesianas (x,y) me daría una nueva coordenada. Algo así como un Haversine inverso. También podría trabajar con una distancia y una transformación de rumbo, pero esto probablemente sería más lento y no tan preciso. Idealmente, el algoritmo debería ser rápido ya que estoy trabajando en un sistema integrado. La precisión no es crítica, dentro de 10 metros sería bueno.

144voto

cjstehno Puntos 131

Si sus desplazamientos no son demasiado grandes (menos de unos pocos kilómetros) y no está justo en los polos, use la estimación rápida y sucia de que 111,111 metros (111.111 km) en la dirección y es 1 grado (de latitud) y 111,111 * cos (latitud) metros en la dirección x es 1 grado (de longitud).

27voto

m0j0 Puntos 21

Me parece que el formulario de aviación, aquí es ideal para este tipo de fórmulas y algoritmos. Para su problema, echa un vistazo a la "lat / largo dado radial y distancia":aquí

Tenga en cuenta que este algoritmo puede ser un poco demasiado complejo para su uso, si desea mantener el uso de funciones de trigonometría bajo, etc.

3voto

Bak1139 Puntos 111

Podría tener sentido proyectar el punto primero. Podrías hacer algo como este pseudocódigo:

donde (x,y) es el desplazamiento deseado.

No es necesario utilizar utm, cualquier sistema de coordenadas planas, que tiene sentido en su área hará.

¿Con qué software está trabajando?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X