2010-09-17 19 views
5

Ich versuche herauszufinden, wie WGS84 Breiten-/Längengrad Punkte auf einer Bitmap geplottet werden, kann aber nicht die Mathematik herausfinden, die Lat/lon Punkte in Koordinaten verwandeln, die plottable sein würde. Könnte mir jemand ein paar Hinweise oder Beispiele geben, wie man das macht?Wie zeichne ich Breiten-/Längenkoordinaten auf dem Bildschirm?

dank

Colin

+8

Welche [Projektion] (http://en.wikipedia.org/wiki/Map_projection) verwenden Sie? Wenn Sie nicht wissen, was diese Frage bedeutet, dann denken Sie darüber nach, "über Kartenprojektionen zu lernen", um Ihr erster Zeiger zu sein. –

+0

Auch wenn Sie sagen, dass Sie die Mathematik nicht "herausfinden" können, bedeutet das, dass Sie die Umrechnungsformeln gefunden haben und nicht wissen, wie Sie sie in Ihrem Programm anwenden, oder bedeutet das, dass Sie nicht wissen, was Formeln sind? –

+0

Ich spreche darüber, wie man ein lat/lon in ein XY konvertiert, um auf einer Bitmap zu plotten – colin

Antwort

5

Drehen Breite Länge in x, y für wie ein Bitmap auf einer flachen Oberfläche 2d Plotten ist ein großes und kompliziertes Thema.

Allgemeine Informationen hierzu finden Sie unter map Projections auf Wikipedia.

Im Allgemeinen lösen Websites wie google maps und bing dieses Problem, indem sie eine Mercator-Projektion auf eine perfekte Kugel verwenden, die den größten Teil der Erde (außer Nord-/Südpol) abdecken kann und für die meisten Zwecke "gut genug" ist. Dies sind jedoch einige große Wenns und es hängt wirklich davon ab, wie genau Ihre Bilder sein müssen und was sie bewahren müssen.

Leider weiß ich nicht delpi gut genug, um Quellcode zur Verfügung zu stellen, aber die Mathematik für Mercator Projektionen ist gut dokumentiert here.

Wenn die Genauigkeit überhaupt kein Problem ist und Ihre Punkte nahe beieinander liegen, wäre die einfachste Methode, einen konstanten Faktor und einen Offset zu verwenden, um den Breiten- und Längengrad in x- und y-Werte zu verschieben.

Dies könnte Ihre Bilder in Nord-Süd-Richtung leicht quetschen, aber im Allgemeinen werden Bilder ähnlich wie Mercator ohne die natürlichen Logarithmen und Sin/Tangens-Aufrufe erzeugt.

0

Wie bereits von MerickOWA erwähnt, gibt es keine richtige Antwort auf die Frage, wie es auf der Skala ab, die Sie arbeiten an und die Genauigkeit, die Sie benötigen. Dies hängt weitgehend davon ab, was auf der .bmp besprochen wird. Wenn es sich um eine globale Karte in Mercator-Projektion handelt, gibt Gregs Antwort einige Hinweise. Wenn es sich um eine lokale Karte handelt, hängt sie vom Datum ab, das die Karte verwendet, und von der verwendeten Projektion (und das Datum wird weitgehend von der nationalen Behörde des betreffenden Landes bestimmt). Nach all dem, was Sie tun wollen, ist nur ein GPS-Gerät bereitgestellt Lat Lon (GS84 Datum) auf eine lokale Karte mit einer Fläche von < 6 ° Breite, dann könnten Sie schlechter als die WGS84 Lat Lon zu projizieren WGS84 UTM-Projektion, dann skalieren (und möglicherweise) die Karte drehen, um an 2 bekannten Koordinaten zu passen.

hier sollte der Link etwas Hilfe http://www.uwgb.edu/dutchs/usefuldata/utmformulas.htm

+0

Wenn ich eine Bitmap sage, beziehe ich mich wirklich auf eine Timage mit einer leeren Bitmap Ich möchte die Coords nicht nur auf einer Karte oder einem Bild überlagern um sie in den relativen Positionen auf dem Bildschirm darzustellen. Es ist mehr, wie man einen Breitengrad nimmt und zu einem XY konvertiert, anstatt auf ein Bild zu überlagern – colin