2009-07-10 3 views
6

Ich benutze derzeit die Java Map Projection Library (ich konnte den Code für das Applet vom Autor erhalten und ändern für die Verwendung in einer Desktop-Anwendung - nicht sicher, ob er mit dieser auf seiner Website noch verknüpft), um eine Karte zu zeichnen der Erde in einer Anwendung. Ich möchte jedoch einen Schritt weiter gehen. Ich habe eine Reihe von Breiten- und Längenpunkten, die ich auf dieser Karte darstellen möchte - ich muss nur einen Kreis an jedem Punkt und vielleicht einige Linien zeichnen, die die Kreise (Punkte) auf der Karte verbinden. Da der Benutzer jedoch die integrierten Funktionen zum Schwenken und Zoomen verwendet, müssen die Punkte an der richtigen Position neu gezeichnet werden. Das Beste, was ich erreichen konnte, ist das Beibehalten der Punkte beim Zoomen, und selbst dann werden die Punkte beim Zoomen größer.Wie kann ich mit Java und anderen externen Bibliotheken Breiten-/Längenpunkte auf eine grafische Darstellung der Erde zeichnen?

Ich bin total offen für den Wechsel von Bibliotheken, aber ich habe wirklich keine Bibliothek gefunden kann sich darum kümmern, eine Weltkarte zu zeichnen, insbesondere auf eine Swing-Komponente (es muss nicht so genau sein, einfach die verschiedenen Landmassen einigermaßen korrekt zeigen) und auch zusätzliche Punkte auf die Karte auftragen und "festhalten" lassen verschiedene Breiten-/Längenkoordinaten.

Ich habe Google Earth und NASA WorldWind angeschaut, aber sie sind schrecklich schwer für meine Zwecke (ich brauche nichts so detailliert oder genau) und es scheint nicht so einfach zu ermöglichen, offline zu verwenden und zu integrieren Weltbildansicht in eine bestehende Anwendung.

Vorschläge oder Gedanken?

+0

Eine Sache, die Sie erwähnen nicht, wenn Sie eine 2D- oder 3D-Darstellung Ihrer Geodaten möchten. In welche Projektion liegen Ihre Daten? – rburhum

+0

Ich habe Breiten- und Längenkoordinaten, wie ich schon sagte. AFAIK, gibt es keine einzige Projektion mit Breiten- und Längenangaben. –

Antwort

0

Während ich es nicht verwendet habe, hat das SwingLabsSwingX-WS Projekt eine "Rich Map Viewer-Komponente." Es gibt ein Tutorial, um mit der Map-Komponente auf der Java.net-Seite zu beginnen.

+0

Dies scheint Web-orientiert zu sein. Wie ich in meinem Post gesagt habe, ist dies für eine Desktop-Anwendung und ich kann mich nicht auf eine Verbindung mit dem Internet verlassen. –

+0

Wahr. Ihre Formulierung, insbesondere "Vorschläge oder Gedanken?", Schien darauf hinzuweisen, dass Sie für etwas offen sein könnten, das keine verpackte Lösung ist. Ich weiß, dass es nicht genau das ist, wonach du gesucht hast, aber das Klopfen scheint ein wenig auf der Strafseite zu liegen. –

0

mit Erdbeobachtungsdaten Umgang kann schnell sehr schwierig zu bekommen. Welche Vorgehensweise zu wählen ist, hängt stark davon ab, wie genau Sie beim Anzeigen der Daten sein müssen. GIS for Web Developers ist ein großartiges Buch, das die Probleme mit Geodaten und deren Übertragung von der Datenquelle auf das Display behandelt. Es ist auf webbasierte Displays ausgerichtet, die Konzepte sind jedoch identisch.

Wenn Sie keine hohe Genauigkeit benötigen, ist es ein einfacher Weg, eine nicht projizierte Basiskarte zu finden. Mit einer Basiskarte ist es einfach, Breiten-/Längenpunkte mit einfachen kartesischen Koordinaten anzuzeigen.

Wenn Sie eine genaue Anzeige benötigen, dann gibt es wirklich keine Möglichkeit, die ziemlich komplexen Bibliotheken zu vermeiden. Es gibt eine Menge Mathematik beteiligt bei der Umwandlung von Geodaten mit verschiedenen Daten und Projektionen in etwas, das den Benutzern angezeigt werden kann.

0

Sie sollten sich OpenMap ansehen.

Wir verwenden OpenMap seit einigen Jahren, um GPS-Tracks in Desktop-Anwendungen anzuzeigen. Es ist wirklich ziemlich einfach, eigene Layer für die Track-Punkte, Geschichte, Anmerkungen und Ihre eigenen Datenquellen hinzuzufügen. Sie müssen keine externen Verbindungen haben, wenn Sie nicht möchten, dass sie diese haben.

Ich schaute schnell auf GeoTools, aber es schien als wäre der Einstieg, mindestens ein Jahr oder zwei, komplexer als das, was wir bereits mit OpenMap erreicht hatten. Wir haben vor kurzem WorldWind erforscht, aber es ist definitiv viel mehr, was wir brauchten.OpenMap benötigt wenig Leistung gegenüber WorldWind, die ziemlich anständige Grafikkarte benötigt.

0

Ich benutzte OpenMap für eine kleine App vor einiger Zeit - es ist ein Hack, aber zeigt, wie es geht. Die App zeigt Hurrikanspuren aus verschiedenen Jahren mit Daten von NOAA. Sie können es hier herunterladen:

http://github.com/DonBranson/SnarfNOAA

Verwandte Themen