Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [C# => Delphi] Geokoordinaten nach Mercator (https://www.delphipraxis.net/134474-%5Bc-%3D-delphi%5D-geokoordinaten-nach-mercator.html)

Mithrandir 22. Mai 2009 21:56


[C# => Delphi] Geokoordinaten nach Mercator
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi ihr,

Eigentlich sollte es nicht zu schwer sein, aber ich bekomme es trotzdem nicht hin... :wall:

Ich habe mir von hier den Code geschnappt, um von Geokoordinaten auf die Mercator-Projektion zu kommen. Dieses Listing habe ich nach Delphi umgeschrieben.

Folgendes ist gegeben:

Latitude: 53.5582°
Longitude: 7.9479°

Das soll in die Mercator-Projektion umgewandelt werden. Hier gibt es einen Konverter: http://mal2.ch/stuff/latlontomercator.html

Heraus kommt:

Latitude(Y): 7086925;
Longitude(X): 884756;

Ich tippe einfach mal, dass das stimmt. Und jetzt komm ich:

Latitude(Y): -10266881
Longitude(X): 884756

Wie man unschwer erkennen kann, geht bei der Berechnung der Latitude was in die Hose.

Aber wo?

Mithrandir 23. Mai 2009 00:03

Re: [C# => Delphi] Geokoordinaten nach Mercator
 
Oookeee...

Also, ich hatte einen Zeilendreher drin. In der orpMercator.pas finden sich in der Funktion LatToY die folgenden Zeilen:

Delphi-Quellcode:
  ts := Tan(0.5 * ((PI * 0.5) - phi)) / con;
con := Power(((1.0 - con) / (1.0 + con)), fCom);
diese müssen vertauscht werden:

Delphi-Quellcode:
con := Power(((1.0 - con) / (1.0 + con)), fCom);
ts := Tan(0.5 * ((PI * 0.5) - phi)) / con;
Dann erhält man folgendes:

Latitude(Y): 7052526
Longitude(X): 884756

Wie man erkennt, passt der Y-Wert immer noch nicht. Ich habe deshalb testweise mal den PHP-Code laufen lassen:

Code:
Array
(
    [x] => 884756.180876
    [y] => 7052526.40477
)
Wie zu erkennen ist, liefert diese ähnliche Werte. Es ist also davon auszugehen, dass die Codes stimmen, und das es einfach daran liegt, dass die Algorithmen genauer sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz