Geo-Koordinaten umrechnen zu Pixel X & Y

  • Heyho,


    ich plane ein bisschen Spielerei mit Geo-Daten. Erstmal schildere ich euch mein Vorhaben:


    Ich möchte eine Weltkarte in 2D erstellen, welche nur die Grenzen aller Länder hat. Also ein etwas größeres Bild (kleinerer Maßstab, sollte klar sein :D). Mittels HTML5 kann man ja ziemlich toll die aktuellen Location-Daten des Benutzers auslesen. Diese bekommt man in "Grad" zurück. Mir stellt sich nun die Frage, wie ich die auf meiner 2D Map dargestellt bekomme.


    Sagen wir mal als Beispiel Berlin liegt bei 90.216389, 50.216389. Auf der Map entspricht dies aber im Beispiel 250x750 Pixel. Wie komme ich von den Koordinaten ab geschicktesten auf diese Pixel angaben? Gibt es da überhaupt einen ordentlichen Weg oder gibt es andere Vorschläge? Würde mich freuen, wenn sich damit jemand auskennt.


    Highfive!


  • Mittels HTML5 kann man ja ziemlich toll die aktuellen Location-Daten des Benutzers auslesen.


    Aber nur wenn dieser es zulässt.


    Zitat


    Diese bekommt man in "Grad" zurück. Mir stellt sich nun die Frage, wie ich die auf meiner 2D Map dargestellt bekomme.


    http://de.wikipedia.org/wiki/Koordinatentransformation


    Zitat


    Sagen wir mal als Beispiel Berlin liegt bei 90.216389, 50.216389. Auf der Map entspricht dies aber im Beispiel 250x750 Pixel.


    Nö, kann nicht sein,Koordinaten geben einen Punkt an, wie gross der Fehler ist, ist abhöngig von der Genauigkeit der Daten. GPS Daten haben einen Fehler von +-15 Meter, siehe auch http://de.wikipedia.org/wiki/G…t_der_Positionsbestimmung
    250x750 Pixel ist lediglich dein Kartenausschnitt als Bild. Du musst wissen welcher Massstab vorliegt um das berechnen zu können.

  • Danke für die Antwort.


    Ja mir ist bewusst, dass dies zugelassen werden muss.


    Die Pixel Angaben von mir sollten auch keine Fläche sein, sondern einen Punkt markieren. 250 Pixel von der linken Mapkante und 750 Pixel von der oberen Mapkante.

  • Beispiel nehmen wir folgendes an.
    Du hast eine Weltkarte mit den Dimensionen 360 px Breit und 180 Pixel Hoch. Dann wäre es ganz einfach weil, es geht in Richtung Osten 180Grad und in Richtung Westen 180Grad, was auf der Länge der Karte genau die Breite in Pixel entspricht. Bedeuted dass du bei O Grad Länge auf der Karte 180 Pixel von Links zählen musst.
    Ebenso verfährst du mit der geografischen Breite. Null Grad also Äquator wäre dann 90 Pixel von oben.
    Der Einfachhalt halber nur mal mit vollen Gradzahlen.


    Wenn du nun 20 Grad E und 10 Grad N hast. Dann wäre der Punkt für die Länge bei 180 + 20 = 200 Pixel zu setzen und für die Breite bei 90 + 10 = 100 aber von oben gezählt da bei der Karte oben Null ist muss du dann 180 - 100 rechnen und da bleiben dann 80 übrig, was unseren Breitenpunkt auf der Karte markiert.


    Das heisst 20 Grad E und 10 Grad N wäre auf der Karte bei 200 Pixel in X-Richtung und 80 Pixel in Y-Richtung.
    Punkt muss also bei 200 X 80 gesetzt werden um den Koordinaten zu entsprechen.


    Einfach wenn die Karte so aussieht. Wenn du eine Karte mit 720 * 360 Pixel hast musst du halt alle Punkte mit 2 multiplizieren und genauso verfährst du bei anderen Grössen.


    Deine Angabe zu einer gegebenen Koordinate und gesetzten Pixelwerten, kann nicht aufgelöst werden da man den Massstab der Karte kennen muss, bzw. den Nullpunkt.


    Ich hoffe das hat etwas Klarheit geschaffen.


    Übrigens auf einer 2D Karte kann man den Nordpol und Südpol nicht abbilden, weshalb die meisten Weltkarten die in Gebrauch sind irgendwo bei 60 Grad N und 60 Grad Süd aufhören, da die Verzerrung sonst zu gross wird.
    Siehe auch http://de.wikipedia.org/wiki/G…hisches_Koordinatensystem