Koordinaten von OpenGeoDB für Karte berechnen

forsterm

Erfahrenes Mitglied
Hallo,
von der OpenGeoDB bekomme ich folgende Koordinaten z.B. für Berlin:
Länge: 13,4
Breite: 52,5167
Wie muss ich nun diese Koordinaten umrechnen,
damit ich die Lage von Berlin auf dieser Karte:
karte.png
darstellen kann?

Am Schluss sollte dabei so etwas entstehen.
karte_berlin.png

mfg
forsterm

Ps: Wie ich den Punkt letztendlich einzeichne weiß ich,
leider weiß ich jedoch nicht, wie ich ihn berechnen lassen kann.
 
Hi,

du könntest es mit diesem Schnipsel mal probieren:
PHP:
<?php
define('ONE_LATITUDE' , 31,525423729);
define('ONE_LONGITUDE', 18,857142857);

// Berlin
$breitengrad = 52.5167;
$laengengrad = 13.4;

$y = floor(118 - ($breitengrad - 51.15) * ONE_LATITUDE);
$x = floor(93 + ($laengengrad - 10.45) * ONE_LONGITUDE);

echo '<em>x: ' . $x . '</em> - <em>y: ' . $y . "</em>\n"; 
?>

Mein Ansatz:
Ich habe mir ein Fixpunkt ausgesucht, und zwar Niederdorla (der MIttelpunkt Deutschlands). Nun habe ich mir einen weiteren Punkt gesucht, dieser ist Madgeburg. Jetzt lassen sich die Abstände berechnen:

0° 59' Breitengrade sind in der Karte 31 Pixel => ein Breitengrad = 31,52... (siehe oben)
1° 10' Längengrade sind in der Karte 22 Pixel => ein Längengrad = 18,85... (siehe oben)

Zur Berechnung:
Zuerst subtrahieren wir Niederdorlas Koordinaten von den Koordinaten der Stadt, die eingezeichnet werden soll, um die Entfernung zu erhalten.
Durch multiplizieren mit der jeweiligen Konstante ermitteln wir den Abstand in Pixeln in der Karte. Diese Werte müssen wir nur noch zu unserem Fixpunkt rechnen (bei den Breitengraden müssen wir subtrahieren, da der Abstand vom oberen Rand der Karte mit zunehmenden Breitengrad kleiner wird)

Gruß
Marvin
 
Hallo,
vielen Dank für deinen Ansatz Marvin nur leider verechnet sich das Script immer um ein paar Pixel, z.B.

Berlin: Länge 12,4 => 146
Breite: 52.5167 => 75
Auf der Karte befindet sich der Punkt jedoch bei X = 149 und Y = 77

München: Länge: 11,5833 => 113
Breite: 48,15 => 211
Auf der Karte befindet sich der Punkt jedoch bei X = 114 und Y = 207

Weiß eventuell jemand, wie ich das Beispiel von Marvin ändern muss, damit es die
richtigen Koordinaten berechnet?

mfg
forsterm
 
> define('ONE_LATITUDE' , 31,525423729);

Wie kommt man auf diese Annahme ?
Breitengrade werden in richtung Norden kleiner.
Somit kann man eigentlich kein festen Wert zuweisen.
 
Zurück