You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
#1 2010-11-26 10:10:40
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Offline Kartenmaterial für Java-Swing
Hallo Community
ich habe derzeit eine OpenStreetMap in eine Java Application mittels Java-Swing eingebettet. Um diese Karten anzuzeigen wird aber eine Internetverbindung benötigt.
Nun habe ich im Internet gelesen, dass es bei OpenStreetMap auch möglich ist, die Daten offline zu verwenden. Leider habe ich kein Package oder ähnliches im Internet gefunden.
Könnte mir bitte jemand sagen, was ich dazu genau brauche und wie ich es verwenden kann?
Danke schon im Voraus.
Greets
Sc0rP1En
Offline
#2 2010-11-26 10:52:19
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Offline Kartenmaterial für Java-Swing
Hallo und herzlich willkommen bei OSM :-)
Die Frage ist, was du konkret machen möchtest. Willst du nur die Kartenkacheln runterladen? Oder willst du die Daten runterladen und die Karte selber rendern?
Ein paar Sachen haben wir schon zusammengetragen:
http://wiki.openstreetmap.org/wiki/Develop/Frameworks
privater Account von KVLA-HRO-Mei
Offline
#3 2010-11-26 11:00:44
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Danke für deine schnelle Antwort :-)
Öhm ich muss leider gestehen,dass ich keine Ahnung davon habe. Ich möchte eigentlich nur eine Karte integrieren, die auf dem PC gespeichert wurde. Auf dieser wird dann mittels Koordinaten ein Live-Tracking durchgeführt. Eigentlich brauche ich nur die Karte von Vorarlberg in Österreich.
Kannst du mir erklären was du mit Kartenkacheln oder rendern meinst? :-)
Offline
#4 2010-11-26 11:06:29
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Offline Kartenmaterial für Java-Swing
Nun bisher wirst du vermutlich so wie bei der Online Karte auf OSM.org vorberechnete Bilder der OpenStreetMap Karte zusammenführen? Diese heißen bei uns Kacheln(Tiles) damit man nicht immer den gesamten Bildausschnitt berechnen muss.
Du könntest dir also diese Bilder lokal speichern und diese dann zusammensetzen (einige Komponenten in der Liste können das bereits).
http://wiki.openstreetmap.org/wiki/Tiles
Extra ein Rendering nur für eine Hintergrund-Karte aufzusetzen halte ich bei deiner Anwendung für ein wenig übertrieben.
privater Account von KVLA-HRO-Mei
Offline
#5 2010-11-26 11:09:29
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Ah okay, klingt logisch :-)
Denke auch das ich keine große Karte rendern muss, wenn ich nur ein kleiner Ausschnitt brauche.
könntest du mir eventuell noch helfen wie ich die Ausschnitte herunterlade und dann zusammenführe oder gibt es irgendwo ein geeignetes Tutorial dafür (am besten gleich mit Integration in Java *smile*)
Offline
#6 2010-11-26 11:18:07
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Offline Kartenmaterial für Java-Swing
klaro, die Links waren aber bereits auf der Seite ![]()
http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
Das ganze musst du dann in einer Komponente passend zusammenzeichnen. Aber wie gesagt es gibt bereits Komponenten dafür.
Bedenke aber, dass das massenhafte kopieren von Tiles nicht gern gesehen wird. Solltest du da etwas kommerzielles draus machen, rate ich dir dringend einen eigenen Karten Server aufzusetzen
http://wiki.openstreetmap.org/wiki/Tile_usage_policy
privater Account von KVLA-HRO-Mei
Offline
#7 2010-11-26 11:33:59
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Jetzt bin ich verwirrt. Auf der 1. Seite werden wieder Links angegeben auf denen aber nur ein png angezeigt wird.
Wo kann ich meine benötigten Karten herunterladen? Was muss ich dann mit diesen heruntergeladenen Karten machen?
Blicke da irgendwie noch nicht so durch :S
Das Projekt wird nicht kommerziell genutzt. Es ist eine Projektarbeit für eine Firma, die es verwendet, aber nicht verkauft.
Offline
#8 2010-11-26 11:44:47
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Offline Kartenmaterial für Java-Swing
Alsooooo du willst eine große Karte durch viele kleine Bildchen zusammensetzen:
1. aktuelle Geokordinaten deines Blickbereiches bestimmen (z.B. Ausdehnung deines GPS Tracks oder was du hast)
2. Ausrechnen welches Tile links oben und rechts unten dafür benötigt wird. Restliche Tile Names dazwischen auffüllen
3. Diese PNGs runterladen
4. Die lokalen PNGs nun Stück für Stück in deinen Canvas zeichnen. ggF. musst du da die Zoomstufe mit einberechnen
privater Account von KVLA-HRO-Mei
Offline
#9 2010-11-26 11:57:41
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
okay^^
also ich soll auf der normalen Homepage über Export meinen Bereich runterladen?
Das mache ich bis ich den ganzen Bereich abgedeckt habe.
Ich stelle mir das so vor:
Ich habe einen Ordner in dem alle Bilder sind (ganzer Bereich und die jeweilige Zoomstufe)
Dann erstelle ich eine Tilefactory in Java und gebe als URL den lokalen Pfad des Ordners an.
Mithilfe der X und Y Koordinate und der Zoomstufe bastle ich dann den richtigen Pfad.
Könnten wir evt. über einen IM miteinander kommunizieren?
Offline
#10 2010-11-26 12:48:20
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Offline Kartenmaterial für Java-Swing
Sorry aber für Einzel-Betreuung fehlt mir die Zeit. Wenn du aber konkrete Fragen/Probleme hast, kannst du sie hier gerne posten ![]()
privater Account von KVLA-HRO-Mei
Offline
#11 2010-11-26 13:04:02
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Okay kein Problem.
Gibt es eine Anleitung im Internet oder im Forum wie ich die einzelen Tiles exportiere, zusammenfüge und dann die Zoomstufen etc. anpasse?
Offline
#12 2010-11-26 13:13:17
- EvanE
- Member
- Registered: 2009-11-30
- Posts: 5,716
Re: Offline Kartenmaterial für Java-Swing
Gibt es eine Anleitung im Internet oder im Forum wie ich die einzelen Tiles exportiere, zusammenfüge und dann die Zoomstufen etc. anpasse?
Mach dir das Leben doch einfacher und suche dir auf http://wiki.openstreetmap.org/wiki/Software/J2ME eine passende Software, die Offline-Tiles unterstützt und deine sonstigen Anforderungen erfüllt, aus und installiere das.
Edbert (EvanE)
Offline
#13 2010-11-26 13:20:05
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Ich würde mir das Leben gerne einfacher machen ^^ .. leider verstehe ich nichts davon und darum frage ich ja im Forum :-) .. so weit ich das sehe, ist das J2ME für Mobile Geräte gedacht.
Und da ich mich nicht auskenne, weiß ich auch nicht, nach was genau ich suchen muss.
http://wiki.openstreetmap.org/wiki/Software
Hier werden mir nur ganze Programme angeboten, die die Karte anzeigen und bearbeiten. Ich muss aber nur eine Karte offline abgelegt haben und mit Swing einbinden. Aber ich glaube das ist komplizierter als ich dachte :S
Last edited by Sc0rP1En (2010-11-26 13:22:00)
Offline
#14 2010-11-26 13:58:12
- EvanE
- Member
- Registered: 2009-11-30
- Posts: 5,716
Re: Offline Kartenmaterial für Java-Swing
Ich würde mir das Leben gerne einfacher machen ^^ .. leider verstehe ich nichts davon ...
Einfach wird leicht mal teuer.
- Sei es dass du in die falschen Dnge investierst und du mehrere Versuche (+ mehrmals Geld) brauchst.
- Sei es dass du sehr viel Zeit (und letztlich damit Arbeitsentgelt) benötigst.
- Sei es dass du jemand bezahlen musst, der dir die 'einfache' Lösung implementiert.
Da du uns über dein Umfeld und die Aufgabe dafür im Dunkeln tappen lässt, werden wir dir höchstens durch Zufall helfen können.
Vielleicht wärst du im Developer-Forum mit deinem Problem besser aufgehoben?
JM2C
Edbert (EvanE)
Offline
#15 2010-11-26 14:08:02
- Nodefinder
- Member
- Registered: 2010-03-23
- Posts: 77
Re: Offline Kartenmaterial für Java-Swing
Ich denke der oben beschriebene Weg ist auf jeden Fall einer der Möglichen:
- Die Tiles herunterladen die du brauchst (auf Policy achten)
- Eventuell als großes Gesamtbild zusammenfügen
- Dieses Bild in deinem Programm anzeigen
Was anderes noch: Nicht vergessen, auf die Herkunft/die Lizenz hinzuweisen, siehe http://wiki.openstreetmap.org/wiki/DE:L … nweisen.3F
Offline
#16 2010-11-28 21:17:17
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Hallo
Umfeld:
Ich habe ein Programm, welches mittels einer GPS-Maus die Koordinaten der aktuellen Position ausliest. Diese Koordinaten werden an einen Server geschickt und in eine Datenbank gespeichert. Auf einem PC läuft dann noch eine Java Application, welche die Koordianten aus der Datenbank liest und auf einer OSM anzeigt. Diese Karte wird mit dem JXMapViewer implementiert und zeigt damit auch immer die neueste Koordinate auf der Karte an. Leider wird die Karte zurzeit über das Internet hineingeladen.
Ich möchte es nun schaffen, dass wir die Karte offline hinterlegen und so anzeigen, das kein Internetzugang notwendig ist.
Die Karte zeigt nur Vorarlberg/Österreich an. Man sollte auch zoomen können.
Ich hoffe mit diesen Informationen könnt ihr euch mein Projekt/Problem ein bisschen besser vorstellen. :-)
So wie ich das bis jetzt aus euren Tipps herauslese, soll ich meinen Kartenausschnitt aus dem Exporttab von www.openstreetmap.org exportieren. Aber wie ich dann weiter komme weiß ich nicht, da ich ja auch die ganzen Zoomstufen benötige und die Karte dann ins Java-Programm laden muss.
Das ich die Lizenz beachten muss, ist natürlich klar. Aber solang ich noch nicht weiß, wie ich das ganze realisiere, hilft mir die Lizenz leider nicht weiter.
Greets
Sc0rP1En
Offline
#17 2010-11-29 01:22:07
- EvanE
- Member
- Registered: 2009-11-30
- Posts: 5,716
Re: Offline Kartenmaterial für Java-Swing
Umfeld:
Ich habe ein Programm, welches mittels einer GPS-Maus die Koordinaten der aktuellen Position ausliest. Diese Koordinaten werden an einen Server geschickt und in eine Datenbank gespeichert. Auf einem PC läuft dann noch eine Java Application, welche die Koordianten aus der Datenbank liest und auf einer OSM anzeigt. ...
Hallo Sc0rP1En
Mit anderen Worten hast du ein Fahrzeug-Tracking für z.B. Flotten-Management.
Dein Problem ist nicht das Tracking (das scheint bereits zu funktionieren) oder die Darstellung auf einer OSM-Karte (auch das scheint nach deiner Aussage zu funktionieren) sondern nur, dass du die Karte (genauer gesagt die Tiles) von einer lokalen Quelle in deiner Organistion beziehen willst.
Du brauchst also entweder einen Tile-Server (inkl. der Frage wie der zu füllen und zu aktualiseren ist) oder wenn dir vor allem die Menge der Zugriffe aufs Internet zuviel ist, einen Tile-Cache mit für dich/euch geeigneter Update-Strategie.
Ich hoffe, dass ich richtig liege und damit die Dinge für die weitere Diskussion etwas klarer sind.
Edbert (EvanE)
Offline
#18 2010-11-29 08:03:35
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Offline Kartenmaterial für Java-Swing
Ehm Scorpien, es geht darum, dass du selbst die Namen der Kachel Bild-Dateien berechnen kannst und die somit cachen/laden kannst. Das Java Swing Control ist nicht OpenSource, oder?
http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
Du kannst dir auch gerne mal Quellcodes z.B. von JTiledownloader anschauen wie die das machen.
privater Account von KVLA-HRO-Mei
Offline
#19 2010-11-29 09:00:57
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Guten Morgen
Richtig! Wir machen ein Live-Tracking für LKWs. :-)
Alles funktioniert bereits, das einzige was fehlt sind die Offline-Daten. Internetzugang sollte garkein benötigt werden. Macht es Sinn, für so einen kleinen Kartenausschnitt einen eigenen Map-Server aufzusetzen?
Kann man, wenn man die Tiles einfach als Bild offline hinterlegt auch zoomen oder muss man dann die einzelnen Zoomstufen auch exportieren?
Ob Java Swing open-source ist, kann ich dir nicht sagen. Aber ich glaube nicht.
Ich werde mir mal den JTileDownloader anschauen.
Greets
Sc0rP1En
Offline
#20 2010-11-29 09:15:55
- Nodefinder
- Member
- Registered: 2010-03-23
- Posts: 77
Re: Offline Kartenmaterial für Java-Swing
Macht es Sinn, für so einen kleinen Kartenausschnitt einen eigenen Map-Server aufzusetzen?
Den Vorteil eines eigenen Map-Servers sehe ich darin, dass du damit kontinuierlich die Kartendaten aktualisieren kannst. Wenn du die einzelnen Tiles herunterlädst, hast du den derzeitigen Kartenstand. In einer Woche kann die Karte aber schon wieder aktueller bzw korrigiert sein. Dann müsstest du wieder alle Tiles herunterladen, um den aktuellen Stand zu haben. Und ganz Vorarlberg in allen Zoomstufen sind einige Tiles. Ich denke nicht, dass es gemäß der Tile-Download-Policy gerne gesehen wird, immer wieder alle Tiles für ein bestimmtes Gebiet herunterzuladen.
Klar, wenn dir ein einmaliger Download der Karten reicht, sind die Tiles vermutlich die einfachere Wahl.
Bei einem eigenen Karten-Server kannst du kontinuierlich den aktuellen Kartenstand einspielen ohne irgendwelche Policies zu verletzen.
Kann man, wenn man die Tiles einfach als Bild offline hinterlegt auch zoomen oder muss man dann die einzelnen Zoomstufen auch exportieren?
Es muss jede Zoomstufe exportiert werden. Für ganz Vorarlberg sind das insgesamt eine Menge Tiles. Die Anzahl der Tiles kann man sich auch Pi mal Daumen ausrechnen.
Offline
#21 2010-11-30 06:54:25
- fx99
- Member
- From: Baden-Württemberg
- Registered: 2009-06-02
- Posts: 1,930
Re: Offline Kartenmaterial für Java-Swing
Vielleicht hilft Folgendes:
Mit OpenLayers lässt sich das so realisieren:
OpenLayers.js und OpenStreetMap.js lokal speichern, OpenStreetMap.js modifizieren:
// "http://a.tile.openstreetmap.org/${z}/${x}/${y}.png",
// "http://b.tile.openstreetmap.org/${z}/${x}/${y}.png",
// "http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"
in
"lokales_verzeichnis/${z}/${x}/${y}.png"
Die benötigten Teil in lokales_verzeichnis + entsprechende Unterverzeichnisse ablegen.
Zum letzten Schritt kann ich ein perl Skript bieten.
Offline
#22 2010-11-30 13:06:47
- EvanE
- Member
- Registered: 2009-11-30
- Posts: 5,716
Re: Offline Kartenmaterial für Java-Swing
Vielleicht hilft Folgendes:
Mit OpenLayers lässt sich das so realisieren:
OpenLayers.js und OpenStreetMap.js lokal speichern, OpenStreetMap.js modifizieren:
// "http://a.tile.openstreetmap.org/${z}/${x}/${y}.png",
// "http://b.tile.openstreetmap.org/${z}/${x}/${y}.png",
// "http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"
in
"lokales_verzeichnis/${z}/${x}/${y}.png"Die benötigten Teil in lokales_verzeichnis + entsprechende Unterverzeichnisse ablegen.
Zum letzten Schritt kann ich ein perl Skript bieten.
Das ist ja erst einmal nur das umbiegen der Tiles auf ein lokales Verzeichnis.
Ob man für Vorarlberg mit einem Verzeichnis auskommt, müsste man noch überlegen. Aber das ist im wesentlichen eine Performance Frage und muss nicht im ersten Schritt bedacht werden.
Die eigentliche Frage von Sc0rP1En geht mehr dahin, wie man a) einen eigenen Map-Server aufbaut und b) wie man den Zugriff auf die Tiles in ein Javaprogramm einbaut.
Dazu zwei Anregungen:
Der User ajoessen baut eine eigene Karte für NRW und hat im Wiki dokumentiert wie er das macht. Vorteil eines eigenen Mapservers ist, dass ihr in euerem Programm praktisch nur die Adresse, woher ihr die Tiles bezieht, ändern müsst.
In den Source von JOSM sehen. JOSM ist in Java geschrieben, holt sich die Daten von der API und stellt sie nach definierten Regeln dar. Vielleicht gibt es ja dort Anregungen wie man Karten-Tiles einbindet oder wie man aus den Daten direkt rendern kann. Letzteres hätte den Vorteil eines nahezu stufenlosen Zooms. Bitte eure DAten nicht direkt von der API holen, das ist für Editoren gedacht, die die Live-Daten benötigen.
Edbert (EvanE)
Offline
#23 2010-12-01 20:36:39
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Hallo
Ich habe mich nun ein bisschen mit Kosmos befasst. Damit kann man ja die Tiles herunterladen, rendern und dann einen eigenen Tile Map Server starten. Diesen Lokalen Webserver sollte ich eigentlich anstelle des Webservers aus dem Internet verwenden können oder nicht?
Leider zeigt er auf der Map nichts an. Als ob er keine Tiles zu Verfügung hat. Kann es an der Ordnerstruktur liegen?
Im ersten Ordner ist die Zoomstufe, im 2. Ordner weiß ich nicht was es darstellt, aber es ist irgendeine Zahl zwischen 0 und 33000 und in diesem Ordner befinden sich die PNGs mit einer fortlaufenden Nummerierung. Sollte diese Struktur nicht eigentlich den Zoom, die Y und die X Koordinate widerspiegeln? So habe ich es zumindest im Internet gelesen.
Ich hoffe ich bin jetzt nicht komplett auf dem Holzweg.
Greets
Sc0rP1En
Offline
#24 2010-12-01 22:00:28
- !i!
- Member

- Registered: 2009-11-28
- Posts: 3,313
- Website
Re: Offline Kartenmaterial für Java-Swing
Ja das spiegeln sie doch wieder? Die Berechnung von Koordinate zu den Index Nummern war ja hier beschrieben: http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
Und ja Kosmos hat einen internen Webserver der dir die Tiles verfügbar macht.
privater Account von KVLA-HRO-Mei
Offline
#25 2010-12-01 22:07:59
- Sc0rP1En
- Member
- Registered: 2010-11-26
- Posts: 16
Re: Offline Kartenmaterial für Java-Swing
Das komische ist nur, dass der JXMapKit die Tiles nicht findet, da er nach z.b. tiles/12/18/13 sucht. Bei der Zoomstufe 12 habe ich aber keinen Ordner mit 18 sondern 2158 ... da verwundert mich schon sehr ...
Der lokale Server zeigt mir nur das Zeichen für kaputte Bilder an und keine Tiles...
So sollte es doch die beste Lösung für mein Problem sein oder?
Offline