5 votos

Convertir grados sexagesimales Lat/Lon a coordenadas UTM

Estoy usando proj4.js para convertir coordenadas geográficas (grados, minutos y segundos) a coordenadas UTM (ETRS89 Zona 30). Cuando obtengo mis coordenadas resultado de la transformación, las estoy comprobando con varios convertidores de coordenadas web y nunca obtengo el mismo resultado (quiero decir coordenadas realmente diferentes) así que no sé si estoy haciendo algo mal o qué.

Para hacer la conversión, primero transformo las coordenadas de grados, minutos, segundos a grados decimales y luego hago la conversión de esta manera:

var firstProjection = "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs";
this.secondProjection = "+proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs";
var longLat = this.toDecimalsDegrees(); //Array with coordinates in decimal degrees

var result = proj4(firstProjection, this.secondProjection, [longLat[0], longLat[1]]);

Finalmente, ¿es correcta la coordenada longitudinal primero y la latitud después?


Las coordenadas que estoy usando son:

Longitud: 6º 2' 32.929'' Latitud: 37º 21' 41.131''

Y una vez que las he convertido a grados decimales:

Longitud: 6.042480466276646 Latitud: 37.361425499749146

El resultado de la reproyección que obtengo con el código mencionado anteriormente es:

X: 1301616.242 Y: 4173536.779

Mientras tanto en otros conversores web el resultado es:

X: 761940.319 Y: 4139140.14

1 votos

Proporcionar detalles de los diferentes resultados ayudaría. En lo que respecta a tu pregunta, sería cuestión de unos pocos segundos de trabajo revertir las coordenadas lat y lon y ver cómo cambia el resultado: ¿intentaste eso? ¿Cuáles fueron los resultados? Otra posibilidad es un error en la conversión de DMS a DD, pero nuevamente necesitas publicar los detalles.

0 votos

@whuber gracias por la respuesta. He actualizado la información para que sea más clara al revisarla.

1 votos

Es posible que te falte un signo menos o que estés en la zona UTM incorrecta. La Zona 30 va de -6º a 0º.

1voto

noob source Puntos 305

La conversión que hiciste fue correcta, es decir, tu latitud/longitud en ETRS89 30N efectivamente se traduce a (1301616.242, 4173536.779).

El problema radica en la zona que estás utilizando. Las zonas UTM van desde -3º hasta +3º desde tu meridiano central, que está fijado a 500 km en el eje X. A 37º de latitud, cada 1º equivale a aproximadamente 88.5 km, lo que significa que toda la zona abarca desde 234.5 km hasta 765.5 km. Si tu punto está más allá de eso, es tiempo de cambiar de zona. Y eso es exactamente lo que está sucediendo.

Tus coordenadas derivadas en la zona 30N tienen un valor de X de 1301616.242m, lo cual es mucho más de lo aceptable, por lo que debes cambiar de zona. Al convertir a la zona 31N, obtienes un valor de X de 768365m, que está bastante cercano al valor que usó este otro conversor web. Por lo tanto, es probable que el conversor haya identificado la zona correcta y haya traducido en consecuencia.

Otra cosa a tener en cuenta, como mencionó el usuario Marco en los comentarios, es que es posible que tu longitud esté incorrecta, es decir, debería ser -6º (6º oeste) en lugar de 6º. De esta manera, usar la Zona 30N sería correcto (por cierto, tu valor de X en esta configuración sería aproximadamente 230525m).

0 votos

Como mencionó el usuario Marco, el problema era el signo menos. Ahora funciona bien, por lo tanto, la conversión de proj4.js fue correcta para las coordenadas dadas al principio. ¡Gracias por tu respuesta!

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