• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Grade in X/Y Koordinaten

AlexW

Geonewbie
hallo,

ich habe so absolut garkeine ahnung von geografie, brauche sie aber jetzt für meine homepage. ich habe eine datenbank mit längen und breitengraden von städten und möchte diese nun auf einer deutschland/österreich/schweiz-karte darstellen lassen.
anscheinend ist meine vorlagenkarte in der verzerrten perspektive (keine ahnung wie man das nennt).
nur wie kann ich nun die x und y koordinaten aus längen und breitengrad ausrechnen?
hier mal die karte:
http://www.ylms.de/karte.jpg
ich vermute mal, dass ich für die berechnung folgende variablen brauche:
grösse des bildes in pixel
min und max längengrad
min und max breitengrad

ich denke, dass es einfacher wäre, wenn ich eine karte benutzen würde, die nicht verzerrt wäre, aber ich möchte es lieber so versuchen.

wäre echt cool, wenn ihr mir helfen könttet.

Alex
 

º

Geoguru
Das Problem ist, dass die Erde 3D ist und die Karte nur 2D. Auf den ersten Blick sieht Deine Karte nach einer Mercatorprojektion aus. Wenn das der Fall ist, dann sollte es mit den Koordinaten nicht allzuschwer sein.
 
OP
A

AlexW

Geonewbie
also ich glaube nicht, dass derjenige der diese karte erstellt hat, selbst eine projektion gemacht hat. deshalb sollte es eine standart-karte sein. welche arten von projektionen gibt es denn?
wie kann ich die projektion berechnen, die du angesprochen hast?
 
OP
A

AlexW

Geonewbie
ok hab mich jetzt schlau gemacht.
Mercatorprojektion ist sie nicht, da wenn ich drei punkte (köln, münchen und kiel) zeichne, weichen sie auf der x achse unterschiedlich stark von der realen position ab.
aber eine mercatorprojektion von deutschlan, österreich und der schweiz wäre nicht schlecht. bei google-images finde ich leider keine. kann mir da jemand helfen?
 

uniquehorn

Geonewbie
Hi,
bin zwar auch kein Geograf, aber für Deine Zwecke ist es sicher ausreichend, wenn Du davon ausgehst, dass die Erdkrümmung zumindest für Teilbereiche Deiner Karte vernachlässigt werden kann. Dann kommst Du mit zwei 2D-Koordiantenverschiebungen und einer linearer 2D-Koordinatentransformation (Matrix-Transf.) aus. Alles andere erscheint mir hier wie die Sache mit den Kanonen und den Spatzen.

Dazu behandelst Du die Längen- und Breitengrade (zumindest lokal) wie gewöhnliche X-/Y-Koordinaten eines anderen Koordiantensystems. Du brauchst nun drei Basispunkte, für die sowohl die Bitmap-Koordinaten (BM), als auch Längen- und Breitengrade (LB) bekann sind, um aus den Längen- und Breitengraden eines Vierten Punktes seine Bitmap-Koordinaten zu berechnen.

Nehmen wir z.B. die Punkte Hannover, Halle und Kassel, um die Position von Göttingen auf der Karte zu ermitteln. Einer der Basispunkte (z.B. Kassel) dient nun als Ursprung für die lineare Transformation, d.h. dieser soll in beiden Koordinatensystemen die Koordinaten (0,0) haben. Dazu ziehe von den LB-Koordinaten aller vier Punkte die Koordinaten von Kassel ab. Dieses verschobene Koordinatensystem nenne ich LB'. Entsprechend gehen wir mit den Bitmap-Koordinaten vor, die wir so nach BM' transformieren.

Für jeden Basispunkt liegen jetzt Koordinatenpaare yLB', xLB' und yBM', xBM' vor. Die lineare Koordinatentransformation LB'--> BM' wird nun beschrieben durch vier Parameter a,b,c,d. Für jeden beliebigen Punkt und insbesondere für die Basispunkte soll damit gelten:

xBM' = a * xLB' + b * yLB'
yBM' = c * xLB' + d * yLB'

Für den Ursprung Kassel gilt trivialerweise
0 = a * 0 + b * 0
0 = c * 0 + d * 0
(was natürlich keine Rückschlüsse auf a,b,c,d zuläßt).

Für Hannover und Halle ergeben sich jedoch vier nichttriviale Gleichungen, die sich nach den vier unbekannten a,b,c,d auflösen lassen. Das geht immer, sofern die Basispunkte nicht auf einer Geraden liegen. Nach der Transformation LB'--> BM' müssen die sich ergebenden Bitmapkoordinaten wieder an den "richtigen" Ursprung geschoben werden (BM'--> BM), d.h. dass die Bitmapkoordinaten von Kassel wieder zu den so erhaltenen BM'-Koordinaten hinzu addiert werden.

Wenn Du nun für verschiedene Teile Deiner Karten andere Basispunkte wählst, hast Du die Krümmung der Erdoberfläche sicher ausreichend berücksichtigt.

Gruß,
Frank
 

MoppelMaeusl

Geocacher
Ich bin zwar Diplom-Kartograph, aber besser als uniquehorn hätte ich das auch nicht erklären können!
Du hättest aber noch eine andere Möglichkeit (wobei ich wieder bei den Kanonen und Spatzen wäre):
Entzerre das Bild so, dass es längen- und flächentreu ist. In Bildbearbeitungsprogrammen wie z.B. Photoshop kannst Du eine Projektion anwenden auf Pixelbilder. Inwieweit Du den oberen Teil auseinanderziehen bzw. den unteren Teil stauchen musst, kannst du anhand bekannter waagrechter Strecken errechnen (Breite BW und Bayern bzw. Breite SH).

Denn ob jetzt die eine Stadt ein Pixel weiter rechts oder links ist, kann man hier vernachlässigen.

Gruß Wolfi
 
OP
A

AlexW

Geonewbie
wow danke. das werde ich mal versuchen. nur möchte ich eine einheitliche berechnung für meinen gesamten kartenausschnitt haben. habe die obrige karte mit einer mercatorprojektion von deutschland verglichen (übereinander gelegt) und da gab es drastische unterschiede im norden deutschlands (alles nach rechts gezerrt). also würde ich lieber versuchen, diese karte zu entzerren (oder kenn jemand eine ähnliche schon entzerrte karte im internet?).

ich muss mal schaun wie ich das hinbekomme.
zum eichen: kann mir jemand die max/min längen/breitengrade von deutschland nennen? also jetzt nicht die westlichste stadt sondern wirklich den westlichsten punkt deutschlands, damit ich einen rahmen ziehen kann.
ich arbeite mit float-variablen (55.01232) und nicht mit der grad/min/sek darstellung und weiss net wie ich das umrechnen kann, also wären float-angaben sinnvoll (oder eine umrechnungsmethode;-))

auf jedenfall vielen dank euch allen!
 
OP
A

AlexW

Geonewbie
ich merke grade, dass das entzerren ncihts bringt. ich brauche wohl eine neue karte in "unverzerrter" perspektive (längen und breitengrade rechtwinklig zueinander).
kennt jemand denn eine, die der obrigen vom layout ähnlich ist?
farben und so sind egal - das kann man ja bearbeiten. ich brauche nur die umrisse (bundesländer auch) von D A CH und am besten noch ein paar städte zum fixieren.
wäre echt nett von euch..
 
A

Anonymous

Guest
AlexW schrieb:
… ich arbeite mit float-variablen (55.01232) und nicht mit der grad/min/sek darstellung und weiss net wie ich das umrechnen kann, also wären float-angaben sinnvoll (oder eine umrechnungsmethode;-))

auf jedenfall vielen dank euch allen!
umgerechnet wird hier
coords läßt man sich hier anzeigen.
nord: 55.05806
east: 015.04147
south: 47.27022
west: 005.86635
format hddd.ddddd

happy mapping
 
A

Anonymous

Guest
ich dachte immer berne wär’ ein hamburger stadtteil. :roll:
brdnordsued.jpg

happy mapping.
 

-tiger-

Geowizard
Um mal die kleinen Kanonen auszupacken und die sache etwas zu "professionalisieren"...

Für eine statische Karte würde ich dir eine entsprechende GIS-Software empfehlen und die Karte dann als Bild exportieren. Empfehlenswerte einfache und freie Programme sind z.B. QGIS oder FGIS. FGIS kann einiges mehr. Die Programme verarbeiten jeweils Vektorkarten im ESRI Shapefile Format sowie Rasterdaten als jpg und tiff. Shapefiles bestehen aus Punkten, Linien oder Polygonen mit Geokoordinaten sowie einer Datenbank (.dbf) mit zugehörigen Attributen wie Namen, Bevölkerungszahlen usw. Freie Geodaten, natürlich auch Deutschland- und Europakarten als Shapefiles gibt es massenweise, ein Blick auf http://www.freegis.org sollte weiterhelfen. Eingene Shapefiles lassen sich mit verschieden Tools z.b. aus einer CSV Datei erzeugen.

Hier mal ein Beispiel aus QGIS in 2 min zusammengeklickt. Die Karte besteht aus 3 Layern, Europa als 3D Relief (jpg), deutsche Bundesländer (shp) und deutsche Städte (shp). Die Beschriftung erfolgt automatisch aus dem dbf-File:

qgis-demo.jpg


Wenn die Projektion nicht passt, gibt es verschiedene Tools, um Shapefiles zu transformieren. Empfehlenswert ist shpproj aus dem Shapelib paket.

Für Rasterdaten (Bilder) gibt es sogenannte world-files, wo die Metadaten zu Projektion und Position auf dem Globus gespeichert werden. Sobald das world-file steht (man nennt das Georeferenzieren) lassen sich auch Rasterdaten in andere Projektionen transformieren, z.B. mit GDAL. Dazu muß die Projektion natürlich bekannt sein, das sollte man bei der Auswahl des Materials beachten.

Einiges schwieriger zu erlernen aber alles in einem bietet das GIS Paket "GRASS" (siehe Oben bei Freegis). Das wird sogar professionellen Ansprüchen gerecht (und auch im Profi-Bereich benutzt).

Soll die Karte auch noch dynamisch sein kann man entweder mit den genannten Tools was scripten oder ein online-GIS verwenden, auch hierzu gibts bei Freegis einige Tips. Dann wirds aber langsam komplex... Bei Intersse an dem Thema kann ich auch hier weiter "ausholen".

[edit:] hab ich vor lauter tippen vergessen: Wenn deine Daten in einem "linearen" Format (x/y) vorliegen, kannst du die relativ leicht in UTM umrechnen, da gehts nach Metern und nicht nach Längengraden. Ist also eine einfache Multiplikation mit einem festen Faktor. Die Daten kommen dann in ein Shapefile im UTM Format. Dem Shapefile selbst ist die Projektion und das Koordinatenformat "egal". Von UTM zu Geokoordinaten ists ein kleiner Schritt mit den genannten Projektionstools. Wenn dann alle Shapefiles in einer Projektion vorliegen -> ab ins FGIS.

Viel Spaß beim Karte basteln :)

Tiger
 
OP
A

AlexW

Geonewbie
ich habe mal den mapcreator ausprobiert - eine freie software mit integrierter datenbank. leider sind da keine bundesländer eingezeichnet...

habe mal fGIS runtergeladen, aber ich finde keine passenden geodaten bzw weiss nciht nach was ich suchen soll ;-)
 

-tiger-

Geowizard
Hier ist schon mal ein paar Links zum Anfang:

ESRI World Basemap als Shapefiles, vemutlich reicht das schon für deine Zwecke.

http://www.esri.com/data/download/basemap/index.html

Koordinaten von Orten, Städten etc. gibts im Geonet Name Server, Shapefiles muß man sich selber basteln. Bei Bedarf könnte ich mal eins für Deutschland zusammenbasteln, die Daten hab ich eh in meiner Datenbank.

http://www.nima.mil/gns/html/

Bei Geocommunity gäbs noch das hier, hab ich aber nicht getestet:

http://data.geocomm.com/catalog/GM/group109.html

Das Format ist E00, das kann fgis nicht direkt lesen, es gibt aber wiederum Konverter von E00 nach Shapefile, z.B. im GRASS Paket.

Weitere Links gibts bei Freegis (siehe oben). An sonsten Google penetrieren, als Suchwörter helfen "Shapefile" und das jeweilige Land weiter. Das gesuchte Land immer englischsprachig eingeben (z.B. "Shapefile+Germany"), bei "Shapefile"+"Deutschland" z.B. landen die ersten Treffer alle bei irgendwelchen Dialer-Abzockern, so eine Suche ist wertlos.

Tiger
 
OP
A

AlexW

Geonewbie
also ne karte hab ich jetzt (mapcreator). die längen und breitengrade sind dort rechtwinklig - d.h. die abstände (in km) zwischen den längengraden werden von unten nach oben kleiner.
jetzt möchte ich grob von einem beliebigen punkt aus eine ellipse zeichnen, die einen radius von r (bsp: 100km) hat.
näherungsweise möchte ich davon ausgehen, dass ich eine ellipse zeichne, wobei ich die länge und breite berechnen muss.
dafür brauche ich vom punkt X mit den längen und breitenangaben x_b und x_l einen anderen punkt, der auf dem gleichen breitengrad ist, jedoch 100km auf dem längengrad verschoben.
frage: mir fehlt nun eine formel mit der ich berechnen kann, welcher längengrad in 100km entfernung (mit selben breitengrad wie der punkt X) in frage kommt - dabei ist es egal ob westen oder osten.
aufgrund dieser berechnung werde ich wiederum mit meiner formel die pixelkoordinaten des zweiten punkts berechnen und dann habe uch schon den pixelabstand und damit den radius der ellipse (breite). das ganze müsste ich dann auch noch für den längengrad machen (also selber längengrad und breitengrad für den zweiten punkt um 100km nach oben oder unten verschieben).

kann mir jemand ne berechnungsgrundlage für diese beiden formeln nennen? wir können ja vereinfacht von nem erdradius von 6371km ausgehen..
 
A

Anonymous

Guest
AlexW schrieb:
also ne karte hab ich jetzt (mapcreator). die längen und breitengrade sind dort rechtwinklig - d.h. die abstände (in km) zwischen den längengraden werden von unten nach oben kleiner.
wie geht das denn? :shock:
 
OP
A

AlexW

Geonewbie
uniquehorn schrieb:
HHL schrieb:
AlexW schrieb:
also ne karte hab ich jetzt (mapcreator). die längen und breitengrade sind dort rechtwinklig - d.h. die abstände (in km) zwischen den längengraden werden von unten nach oben kleiner.
wie geht das denn? :shock:
Jede tangentiale Zylinderprojektion hat diese Eigenschaft, insbesondere die schon erwähnte Mercatorprojetion

genau und weil die längengrade bei den polen zusammenlaufen werden dort die distanzabstände immer geringer.
kann das denn einer von euch berechnen?
 

uniquehorn

Geonewbie
AlexW schrieb:
kann das denn einer von euch berechnen?
Hi,
ich bin mir zwar nicht sicher, ob das Dein Problem genau trifft, aber ich habe mich mal hingesetzt und ausgerechnet, wie man bei Längen- und Breitengraden einen "Kreis" um einen gegebenen Punkt schlägt. Dazu habe ich mir überlegt, wie man einen Breitenkreis (also die Punkte mit gleichem Abstand zum geogr. Nordpol) so um eine Achse dreht, die durch den Erdmittelpunkt und den Äquator verläuft, dass der Mittelpunkt des gedrehten Kreises mit dem gegebenen Punkt zusammenfällt.

gegeben:
L : Längengrad des Mittelpunktes, -180 < L <= 180 Grad
B : Breitengrad des Mittelpunktes, -90 <= B <= 90 Grad
d : Radius des Kreises, d<R
R : Erdradius
w : Winkelparameter, -180 <= w <= 180 Grad

gesucht:
Lw, Bw : Längen- und Breitengrad eines Punktes auf einem Kreis mit dem Radius d um den Mittelpunkt (L,B), parametrisiert durch w (w=0 liegt in östlicher Richtung vom Mittelpunkt, w=90 südlich, w=-90 nördlich und w=+-180 westlich).

Berechnungsschritte:
(Bd, Bx, a, a' sind Zwischenwerte, pi = 3,142...)

Bd = 90 - (d/R)*(180/pi)
Bx = arcos(cos(w)*cos(Bd))

a = arcos(sin(Bd)/sin(Bx)) falls w>=0
= -arcos(sin(Bd)/sin(Bx)) sonst

a' = a + 90 - B

--> Bw = arcsin(cos(a')*sin(Bx))
--> Lw = arcos(cos(Bx)/sin(Bw)) - 90 + L

Dann mußt Du die Längen- und Breitengrade "nur" noch in Deine Karte bekommen.
 
Oben