Welt-/Pixelkoordinaten umrechnen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
code
dank
einsetzen
fehler
http
image
jemand
karte
koordinate
ort
osten
pixel
projektion
rad
safe
suche
tabelle
url
westen
-
Hallo,
ich habe ein Problem bei der Umrechnung von Weltkoordinaten in Pixelkoordinaten auf einer Karte. Ich weiß, dass das nur indirekt etwas mit PHP, MySQL & .htaccess zu tun hat, ich habe aber kein besser passendes Forum gefunden.
Ich habe rohdaten, in einer MySQL Tabelle (von geonames.org), die vereinfacht so aussehen:
ID_|Ort__________|Breite____|Laenge
----+---------------------+--------------+---------
1__|Musterstadt___|10.5665__|23.9887
2 __|Nachbarstadt_|50.99955_|30.56
Erklärung:
ID-> Fortlaufende Nummerierung aller Orte, die in der Liste stehen
Ort-> Der Ortsname des jeweiligen Ortes
Breite-> Die geographische Breite in Grad (°)
Laenge-> Die geographische Länge in Grad (°)
Nun möchte ich diese Koordinaten auf einer Karte mit PHP anzeigen lassen. Als Karte würde ich gerne eine Karte in der Mercator-Projektion verwenden, also beispielsweise diese Karte. Mein Hauptproblem ist es, dass ich nicht weiß wie ich aus der Breite und Länge Koordinaten in Pixel mache. Kann mir jemand weiterhelfen? Hat jemand eine Anregung oder eine Idee, wie ich die Koordinaten umrechnen kann?
Danke im Voraus für alle Antworten.
MFG THWBM -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
recht gute resultate ergibt diese suche ;)
-
czibere schrieb:
recht gute resultate ergibt diese suche ;)
Hallo,
danke für die Antwort, aber ich komme damit nicht so recht weiter. Ich finde da hauptsächlich Treffer zum Thema "Wie speichert man Koordinaten in einer MySQL Tabelle?" und nicht zum Thema "Wie rechnet man Koordinaten um?". Mit MySQL hat mein Vorhaben ja auch nur indirekt zu tun, denn ich entnehme nur die Daten aus einer MySQL Tabelle. Der Rest sollte mit Mathematik und PHP machbar sein. Ich bin eher auf der Suche nach einer Formel, mit der ich ganz allgemein die Koordinaten umrechnen kann.
MFG THWBM -
thwbm schrieb:
apropos ;) du schreibst ja selbst Mercator-Projektion. hast du da etwas weiter auch geschaut? z.b. hier: ...#Normale_Mercator-Projektion dort steht eigentlich alles, was du suchst.
... "Wie rechnet man Koordinaten um?"... -
czibere schrieb:
......#Normale_Mercator-Projektion dort steht eigentlich alles, was du suchst.
Diese Rechnungen habe ich auch schon gesehen, blicke aber nicht durch . Ich nehme mir jetzt mal ein Beispiel:
01945 Lindenau (Brandenburg) liegt bei 51,4°N und 13.7333°E. Wenn ich das jetzt in die Gleichungen auf Wikipedia einsetze, erhalte ich:
Ist das so richtig? Wenn ja, was heißt das jetzt? Man müsste doch eigentlich noch die Auflösung der Karte mit einbeziehen, denn sonst kann man ja keine Pixel ausrechnen. Wo liegt der Fehler?
MFG THWBM
Beitrag zuletzt geändert: 29.9.2013 18:23:28 von thwbm -
thwbm schrieb:
nein :(
...Ist das so richtig? Wenn ja, was heißt das jetzt?
der fehler liegt darin, dass du die ausführung auf der wiki-seite nicht wirklich richtig durchgelesen hast. winkel in bogenmaß (radiant). also zuerst einmal umrechnen (
).1° = 2 * Pi / 360 rad
dann was meinst unter
? es heißty = in( ...
also logarithmus naturalis.y = ln( ...
weiters nimmst λ0 = 0, das heißt london! warum? die bedeutung von λ0 ist dort auch beschrieben.
Man müsste doch eigentlich noch die Auflösung der Karte mit einbeziehen, denn sonst kann man ja keine Pixel ausrechnen. Wo liegt der Fehler?
das ist richtig und zwar deshalb weil london von london so nach westen wie nach osten genau 2π rad entfernt ist (klingt etwas scherzhaft, aber ist war). das ist die ganze x-breite der karte, die du natürlich anpassen solltest (wie die höhe auch ;)
mann oh mann! mathe ist ein hund! *ggggrinz*
Beitrag zuletzt geändert: 29.9.2013 19:18:15 von czibere -
czibere schrieb:
thwbm schrieb:
nein :(
...Ist das so richtig? Wenn ja, was heißt das jetzt?
Erstmal danke für die kurze, knappe Antwort.
czibere schrieb:
winkel in bogenmaß (radiant). also zuerst einmal umrechnen (
).1° = 2 * Pi / 360 rad
Danke das habe ich falsch (oder eher gesagt gar nicht) verstanden.
Wikpediaartikel:
mit als geographischer Länge des Kartenzentrums
Das habe ich wahrscheinlich falsch verstanden. Ich habe 0 eingesetzt, da der Bildmittelpunkt der Karte der 0-Meridian ist, also 0°. Was muss ich da einsetzen?
czibere schrieb:
dann was meinst unter
? es heißty = in( ...
also logarithmus naturalis.y = ln( ...
Entschuldigung, der Unterschied war mir nicht bekannt.
Ich bin zu blöd um ein "I" (Groß i) von einem "l" (Klein L) zu unterscheiden.
czibere schrieb:
das ist richtig und zwar deshalb weil london von london so nach westen wie nach osten genau 2π rad entfernt ist (klingt etwas scherzhaft, aber ist war).
Das heißt also, dass London 2*Pi*Erdradius, also einmal um die Erde rum, nach Osten und Westen von London entfernt ist, logisch.
Was muss ich den jetzt (umgangssprachlich) für , und einsetzen?
= Ost/West Weltkoordinate des Zielortes
= Nord-Sud Weltkoordinate des Zielortes
= ?
Sind die Variabeln so richtig belegt bzw. was muss für eingesetzt werden? Ich finde die Wikipedia-Formulierungen sehr kompliziert.
Wo muss ich die X-/Y-Auflösung der Karte einsetzen?
Danke für die bisherigen, sehr hilfreichen Antworten.
MFG THWBM
Beitrag zuletzt geändert: 30.9.2013 18:34:48 von thwbm -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage