Ortskoordinaten graphisch darstellen
nino
- php
Hallo,
ich habe eine MySQL Tabell mit Ortsnamen und Koordinaten (z.B. Cottbus|51,76667|14,33333).
Wie kann ich die jetzt graphisch darstellen?
Also als Gesamtkarte von Deutschland, in der dann an der jeweils entsprechenden Stelle ein roter Punkt o.ä. erscheint.
Die Sache soll über ein Formular laufen, über das man den Städte-Namen auswählt und sich dann den Standort anzeigen lassen kann ...
Wie werte ich die Koordinaten aus????
Danke für Eure Tipps,
nino
Hi, nino,
an dem Thema bin ich auch brennend interessiert.
www.mapblast.com konnte das vor ein paar Monaten weltweit, doch jetzt haben die eine ander Logik, die Koordinaten erscheinen nicht mehr im Klartext.
Übrigens: Ich kann dir deutsche Orte mit Koordinaten zur Verfügung stellen, nach Wunsch aufbereitet. Kann ich von dir auch welche bekommen ?
Gruß, Kalle
Hallo Kalle,
hab Daten unter http://th-mack.de/download gefunden - sind ohne Probleme in Exel zu übernehmen ...
nino
Ich würde vorschlagen du besorgst dir eine Karte mit Längen und Breitengraden. Dann schau mal mit einem Bildbearbeitungsprog. genau nach auf welchen Pixelkoodinaten der Breitengrad und Längengrad liegt. Dann musste natürlich noch mit PhP und der gd-lib ausrechnen auf welchem Pixel der Punkt liegen soll. Dürfte aber ganz einfach sein
hallo bigbob,
ok, die vorstellung hatte ich auch ... ich dacht ehier hat jemand einen idee oder ein paar kleine tipps...
wo kriegt man ne digitalisierte karte (freeware) von deutschland mit koordinaten?
wie mache ich das mit der umrechnung?
sagen wir mal ich nehme ein deutschlandkarte. darüber könnte ich doch dann per <div></div> ein gif auf die entsprechenden koordinaten legen, oder?
oder sollte das besser über die gd-lib laufen - damit kenne ich mich leider nicht so aus :-)
nur wie rechne ich koordinaten in minutenangaben in pixelangaben für html um???
danke schonmal an alle ...
nino
hallo fastnix,
genau die umsetzung der geodaten in pixel suche ich ...
wie machst du das?
kannst du mir da hinweise geben?
gruss & danke nino
Nun ja. Du brauchst eine Karte, die hinreichend maßstabsgerecht ist.
Dann musst Du wissen, wie groß die Karte in Pixeln ist.
Du suchst aus Deiner Datenbank die nördlichste, südlichste, westlichste, östlichste Koordinate raus. -> Max_Nord etc.
Du teilst die Pixel der Map horizontal durch diese Differenz
Masstab_Horizontal = (Max_Ost - Max_West) / Pixel_H
Masstab_Vertikal = (Max_Nord - Max_Sued) / Pixel_V
Koordinate_Ursprung_Horizontal = Max_West
Koordinate_Ursprung_Vertikal = Max_West
Koordinate_Map_Horizontal=(Max_West-Koordinate_H)*Masstab_Horizontal+Pos_Map_H
Koordinate_Map_Vertikal =(Max_Nord-Koordinate_V)*Masstab_Vertikal+Pos_Map_H
Tja. Jetzt positionierst Du das Map im Hintergrund (top=Pos_Map_V, left=Pos_Map_H) und das Pixel im Vordergund.
Ach so: Hat Deine Markierung eine Ausdehnung... musst Du weiterrechnen.
Oder so ähnlich.
Bevor ich es vergesse:
Das wird nur in einem kleinen Land so funzen.
Die USA z.B. sind zu groß.
Oder Du hast eine Karte, bei der die Meridiane und Längengrade GERADE sind, also eine ziemlich verzerrte Karte.
Diese Berechnungsmethode ist also ungenau, liefert aber für eine pure Darstellung Ergebnisse, die noch ausreichend genau sind, verlang dennoch nicht zuviel.
Für die nächste Näherung wäre ganz einfach zu ermitteln, wie sehr die Längengrade in Deutschland nach Norden hin zusammenlaufen und dann den Maßstab anhand der Position (Breite) neu zu bestimmen.
Ansonsten: Mach es wie ich und unterziehe die Werte abschließend einem optischen Feintuning, indem Du Dir Orte suchst, deren Lage Du kennst:
Arkona, Berchtesgaden, Koblenz, AAchen... was weiss ich.
Bevor die Frage kommt:
Ja, ich kann das komplette Script posten.
Kostet aber. Die Alternative ist eine zienlich lange Nacht- nur die hatte ich auch.
fastix
Hi,
ich bekam vor einigen Wochen von meinem WEB-Provider ein Rundschreiben, nach dem das Verwenden von geografischen Karten abgemahnt wird.
Nur so als Hinweis, bevor man da ins Fettnäpchen tritt und die Sache teuer wird.
Also immer vom Karteninhaber das OK holen.
Gruß aus Worms, Kalle