2012-02-04 13 views
7

Sto cercando una spiegazione sul motivo per cui ci sono 2 diverse formule di mercatore discusse su questi siti.conflitto logico proiezione mappa mercatore

Capisco che questo sia l'algoritmo di proiezione di Mercatore corretto:

http://en.wikipedia.org/wiki/Mercator_projection

y = ln|sec(lat) + tan(lat)| 

Tuttavia, questo sito si riferisce a qualcosa di completamente diverso: http://wiki.openstreetmap.org/wiki/Mercator

#include <math.h> 
double lat2y(double a) { return 180/M_PI * log(tan(M_PI/4+a*(M_PI/180)/2)); } 

Tutte le idee?

risposta

7

Entrambe le formule sono uguali.

  • sec (x) + tan (x) = [1 + sin (x)]/cos (x)

    sec(x) + tan(x) = [ 1 + sin(x) ]/cos(x)

  • tan (pi/4 + x/2) = sin (pi/4 + x/2)/cos (pi/4 + x/2) =

    = [cos (x/2) + sin (x/2) ]/[cos (x/2) - sin (x/2)] =

    = [cos (x/2) + sin (x/2)]^2/[cos (x/2) - sin (x/2)]/[cos (x/2) + sin (x/2)] =

    = [1 + 2 * cos (x/2) * sin (x/2)]/[cos^2 (x/2) - sin^2 (x/2)] =

    = [1 + sin (x)]/cos (x)

    enter image description here

Quest'ultima formula è più conveniente per i calcoli numerici, poiché implica il calcolo della funzione trigonometrica solo una volta.

+0

questo sembra essere corretto dopo ulteriori test. – glutz

+1

+1 Grazie per la derivazione - mi ha aiutato molto. A turno ho abbellito la tua risposta un po '. Spero non ti dispiaccia. – aefxx