Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Weltkarte als frei skalierbare Vektorgrafik (https://www.delphipraxis.net/86824-weltkarte-als-frei-skalierbare-vektorgrafik.html)

Vitus 20. Feb 2007 09:48


Weltkarte als frei skalierbare Vektorgrafik
 
Hallo mal wieder,

ich habe seit langer Zeit mal wieder Delphi rausgekramt (ist und bleibt einfach die besteste Sprache!) und wollte folgendes Problem lösen:

Ich möchte eine Weltkarte in Form einer Vektorgrafik in mein Programm einbauen. Die Komponente, die ich dazu schreiben möchte sollte folgendes ermöglichen:

1. Laden einer Vektorgrafik, unter Umständen in einem custom format
2. Bereitstellen von skalier- und pan- Funktionen
3. Bereitstellen von Funktionen zum Einfügen von Linien, Bezeichnungen und Symbolen
4. Letztere am besten als bitmap Grafik => also eine Vermischung aus Vektor und Bitmap
5. Funktionen für die Umrechnung von Polarkoordinaten zu Planarkoordinaten der Karte

Die Karte selbst braucht nicht sehr detailiert zu sein. Im Grunde reichen mir die groben Küstenlinien und eventuell eventuell ein paar Flüsse.



Da ich in solchen Grafikroutinen wirklich unerfahren bin wollte ich mich erstmal nach Euren Erfahrungen auf diesem Gebiet erkundigen. Gibts Referenzprojekte mit Quellcode? Wo finde ich die Vektorgrafiken für meine Erde? Welche Probleme ergeben sich aus der Erdkrümmung und wie kompensiert man diese?

Besten Dank für die Aufmerksamkeit!

Gruß vom
Vitus

Eichhoernchen 20. Feb 2007 10:14

Re: Weltkarte als frei skalierbare Vektorgrafik
 
Wenn du größere Entfernungen berechnest, musst du die Erdkrümmung mit einbeziehen.

Stichwort Bogenmaß bzw. Kreisbogen.

Du kannst den Kreisbogen durch:

b = pi * r * a/180

berechnen wobei r der Radius der Erde(ich glaube irgendwie 6.371 km) ist und a der Winkel zwischen Start und Endpunkt der Messung am Erdmittelpunkt, also einfach den Winkel zwischen 2 Gerade ausrechnen: von Startpunkt durch den Mittelpunkt und von Endpunkt zum Mittelpunkt.

Edit1:
Hmm obwohl die Erde ist ja (näherungsweise) ne Kugel und kein Kreis... aber soviel anders sollte die Berechnung nicht sein. Wenn man den Abstand bestimmt, kann man sich ja das auch als Kreisvorstellen mit beiden Orten auf der Kreisbahn... Korrigieren falls ich falsch liege.

Vitus 20. Feb 2007 10:31

Re: Weltkarte als frei skalierbare Vektorgrafik
 
Hallo Hörnchen,

danke für die Antwort! Allerdings ist die Mathematik mein kleinstes Problem. Meine Frage war eher Allgemeiner Natur:

Wenn ich die kugel- (ellypsoide-, birnen- oder wasauchimmer-) förmige Erdoberfläche zweidimensional darstelle, ergeben sich ja zwangsläufig Fehler. Je nach dem, welche Projektionsart man nun zugrunde legt, variiert die Fehlerart.
Meine Karte soll so geschaffen sein, dass ich sowohl kleine Entfernungen von ein paar Meilen, bis zu einem Gesamtbild der gesamten Oberfläche darstellen kann. Die Frage ist also eher: welche Projektionsart ist zu wählen und welche Fehler entstehen dadurch.

Gruß vom
Vittl

Luckie 20. Feb 2007 10:36

Re: Weltkarte als frei skalierbare Vektorgrafik
 
Google doch einfach mal nach Bei Google suchenkarte projektion.

Eichhoernchen 20. Feb 2007 10:39

Re: Weltkarte als frei skalierbare Vektorgrafik
 
achso, ich dachte das soll 3Dimensional werden....

Vitus 20. Feb 2007 10:45

Re: Weltkarte als frei skalierbare Vektorgrafik
 
Zitat:

Zitat von Eichhoernchen
achso, ich dachte das soll 3Dimensional werden....

Nope. Eine stinknormale, zweidimensionale Weltkarte.

Ich würde eigentlich ganz gerne Schritt für Schritt vorgehen und deshalb nochmal zu meinen ersten Fragen zurückkommen:

Zitat:

Gibts Referenzprojekte mit Quellcode? Wo finde ich die Vektorgrafiken für meine Erde?
:wink:

xaromz 20. Feb 2007 12:01

Re: Weltkarte als frei skalierbare Vektorgrafik
 
Hallo,

bezüglich Referenz-Quellcode kann ich Dich an meine SVG-Bibliothek verweisen. Das Einfügen von zusätzlichen Objekten (Bitmaps und Vektoren) ist damit relativ einfach möglich. Nur die Koordinatenumrechnung musst Du manuell machen.

Gruß
xaromz

Vitus 20. Feb 2007 12:16

Re: Weltkarte als frei skalierbare Vektorgrafik
 
Moin xaromz,

das sieht schon mal sehr interessant aus! Vielen Dank für den Link.
Du schreibst auf der Seite
Zitat:

Benötigt GDI+ (Bestandteil von Windows XP)
Bedeutet das im Umkehrschluss dass man die Programme ausschließlich auf XP/Vista Rechnern laufen lassen kann? Falls ja: kann man das umgehen? Gilt das nur für die Entwicklung?

Grüße vom
Vittl

xaromz 20. Feb 2007 13:26

Re: Weltkarte als frei skalierbare Vektorgrafik
 
Hallo,
Zitat:

Zitat von Vitus
Du schreibst auf der Seite
Zitat:

Benötigt GDI+ (Bestandteil von Windows XP)
Bedeutet das im Umkehrschluss dass man die Programme ausschließlich auf XP/Vista Rechnern laufen lassen kann? Falls ja: kann man das umgehen? Gilt das nur für die Entwicklung?

Das gilt nicht nur für die Entwicklung. GDI+ ist eine Erweiterung der Graphikschnittstelle von Windows (dem GDI). Diese Erweiterung ist erst seit XP Bestandteil von Windows. Unter älteren Systemen kann man einfach die Bibliothek (GDIPLUS.DLL) in's Programmverzeichnis werfen.

Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz