[Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?
Holger
holgerosm at gmx.net
So Jan 1 19:46:50 UTC 2012
Hallo Manuel,
ich kann das hier bieten:
use Math::Trig;
### Earth radius in meters. This must be 6378137 for the calculation
### of Spherical Mercator coordinates.
my $earthRadius = 6378137.0;
### Convert Spherical Mercator coordinates into latitude and longitude.
sub merc2latlon {
my ($xMerc, $yMerc) = @_;
my ($lat, $lon);
$lon = rad2deg($xMerc / $earthRadius);
$lat = rad2deg(atan(sinh($yMerc / $earthRadius)));
return($lat, $lon);
}
Gruß
Holger
Am 01.01.2012 18:07, schrieb Manuel Reimer:
> Hallo,
>
> für den Längengrad habe ich die Formel schon selber umgestellt:
>
> lon = (merclon * 180) / 20037508.34
>
> Aber ich bekomme es für den Breitengrad nicht hin...
>
> Ursprungsformel, die genau das Gegenteil macht, was ich will (Aber noch
> Javascript):
>
> function Lat2Merc(lat) {
> var PI = 3.14159265358979323846;
> lat = Math.log(Math.tan( (90 + lat) * PI / 360)) / (PI / 180);
> return 20037508.34 * lat / 180;
> }
>
> Ich brauche die Umgekehrfunktion. Allerdings nicht in Javascript sondern
> in Perl.
>
> Hat da jemand etwas auf die Schnelle bereit?
>
> Gruß
>
> Manuel
>
> P.S. Ich kann auf dem Server *keine* Perl-Module installieren!
Mehr Informationen über die Mailingliste Talk-de