6 votos

Transformación de lat y long a Mercator x y y

He estado intentando trazar un conjunto de coordenadas de latitud y longitud en un mapa Mercator utilizando el siguiente conjunto de ecuaciones:

x = long - long0
y = ln(tan(pi/4 + lat/2))

Estas ecuaciones proceden de una página sobre Wolfram .

Estoy usando un mapa Mercator de Wikipedia En base a esto tengo el conjunto actual de ecuaciones para mapear completamente la latitud y la longitud de la imagen:

height = image height in pixels
width = image width in pixels

x = long * PI/180
x = x * width/(2 * PI) + width/2

latRange = 2 * 82 * PI/180
y = ln(tan(PI/4 + lat/2))
y = -(y*height/latRange - height/2)

Sin embargo cuando hago la imagen me salen puntos en el mapa más altos de lo esperado (intento trazar el trópico de cáncer y me sale la costa norte de Argelia).

Entonces, ¿alguien puede decirme dónde me estoy equivocando?

2voto

rg255 Puntos 111

El enlace que está utilizando es una transformación de mapa y no una transformación de par de coordenadas. La transformación correcta está en el sitio principal de Stack Overflow en:

https://stackoverflow.com/questions/14329691/convert-latitude-longitude-point-to-a-pixels-x-y-on-mercator-projection

latitud = φ y longitud = λ son:

E = FE + R (λ – λₒ)
N = FN + R ln[tan(π/4 + φ/2)]   

donde λ O es la longitud de origen natural y FE y FN son el falso este y el falso norte.

Las fórmulas se simplifican mejor en (ya que FE y FH se ignoran en la mayoría de los casos de uso):

Use this formuale

El enlace de desbordamiento de pila proporciona pseudocódigo para su uso en todos los idiomas también.

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