Mercator-Projektion übersetzen ?

StormChaser

Mitglied
Ich hab' grad' 'n Brett vor'm Kopf.
Kann jemand das unten Stehende in PHP schreiben ?
Weil das Forum bestimmte Wiki-Formelzeichen nicht kennt: Originaltext steht unter Mercator-Projektion – Wikipedia


Abbildungsgleichungen für normale Lage
Die folgenden Gleichungen bestimmen die Koordinaten {\displaystyle x}
87f9e315fd7e2ba406057a97300593c4802b53e4
und {\displaystyle y}
b8a6208ec717213d4317e666f1ae872e00620a0d
eines Punktes auf einer Mercatorkarte aus seiner geographischen Breite {\displaystyle \varphi }
33ee699558d09cf9d653f6351f9fda0b2f4aaa3e
und geographischen Länge {\displaystyle \lambda }
b43d0ea3c9c025af1be9128e62a18fa74bedda2a
(mit {\displaystyle \lambda _{0}}
cfa5ad1eb6cdaf3d8dfd77991ee9ce7bdf169184
als geographischer Länge des Kartenzentrums, Winkel im Bogenmaß). Die Erde wird als kugelförmig angenommen; Längen sind mit dem Erdradiusdimensionslos gemacht. Die Gleichung für y ist das oben genannte Integral des Kehrwerts des Cosinus der geographischen Breite (anstelle des Tangens bei der gnomonischen Zylinderprojektion):

{\displaystyle {\begin{aligned}x&=\lambda -\lambda _{0}\\y&=\int _{0}^{\varphi }{\frac {\mathrm {d} t}{\cos t}}\\&=\ln \left[\tan \left({\frac {\pi }{4}}+{\frac {\varphi }{2}}\right)\right]\\&=\ln \left(\tan \varphi +\sec \varphi \right)\\&={\frac {1}{2}}\ln \left({\frac {1+\sin \varphi }{1-\sin \varphi }}\right)\\&=\mathop {\rm {artanh}} \left(\sin \varphi \right)\\&=\mathop {\rm {arsinh}} \left(\tan \varphi \right)\end{aligned}}}
80715c7de700e2a5f85a667b27097209fd6fc160

Die Inverse ist die Gudermannfunktion:

{\displaystyle {\begin{aligned}\varphi &=2\arctan \left(e^{y}\right)-{\frac {1}{2}}\pi \\&=\arctan \left(\sinh y\right)\\&=\arcsin \left(\tanh y\right)\\\lambda &=x+\lambda _{0}\end{aligned}}}
9f6f08c988638fa6d81fb1b990056d5e8669fcb0
 
Hoppla, ich glaube da ist was schief gegangen.

Geht es dir darum, dass wir dir bei Umsetzung helfen, oder suchst du einfach jemanden, der das für dich erledigt (dann bitte in das Unterforum Jobbörse posten)?

Ansonsten: Was hast du schon an Code?

Gruß Technipion
 
Jobbörse um eine Formel als PHP-Code zu posten? Bisschen Kanonen auf Spatzen, oder nicht?

Also, falls es jemand kann, kann er das auch gern auf github setzen....ups, da war ich noch garnicht...moment mal....

ja, da werde ich wohl fündig.
Vielen Dank allen Helfern!
 
Ja, es gibt ja zum Glück noch OpenSource, z. B. auf github oder SourceForge oder irgendwelche php-Skripte-Seiten, da kann man ja mal nach Kleingkeiten suchen, besonders, wenn es sich um so kleine Kleinigkeiten wie eine Formel als PHP-Code handelt.

Aber schön, dass hier sonst geholfen wird. Gibt es ja auch nicht mehr so oft, zumindest im deutschsprachigen Raum.
 
besonders, wenn es sich um so kleine Kleinigkeiten wie eine Formel als PHP-Code handelt.
Warte, also habe ich das jetzt richtig verstanden, dass du nur die Wikipedia-Formel in PHP wolltest?

Ich dachte ja, du willst dir eine Karten-Klasse schreiben, oder vielleicht irgendwelche GPS-Daten abbilden oder sowas. Aber wenn es nur um die Implementierung geht:
PHP: Mathematische Funktionen - Manual
PHP:
$lambda_0 = ... // Kartenzentrum

$lambda = ... // Geographische Länge
$phi = ... // Geographische Breite

// Mercator-Transformation:
$x = $lambda - $lambda_0;
$y = asinh( tan( $phi ) );

// Inverse T., alias Gudermannfunktion:
$phi = asin( tanh( $y ) );
$lambda = $x + $lambda_0;

Gruß Technipion
 
Warte, also habe ich das jetzt richtig verstanden, dass du nur die Wikipedia-Formel in PHP wolltest?

Ich dachte ja, du willst dir eine Karten-Klasse schreiben, oder vielleicht irgendwelche GPS-Daten abbilden oder sowas. Aber wenn es nur um die Implementierung geht:
PHP: Mathematische Funktionen - Manual
PHP:
$lambda_0 = ... // Kartenzentrum

$lambda = ... // Geographische Länge
$phi = ... // Geographische Breite

// Mercator-Transformation:
$x = $lambda - $lambda_0;
$y = asinh( tan( $phi ) );

// Inverse T., alias Gudermannfunktion:
$phi = asin( tanh( $y ) );
$lambda = $x + $lambda_0;

Gruß Technipion

Ja, dann hatte ich mich wohl nicht klar genug ausgedrückt, mein Fehler.
Danke dir !
 
Zurück