You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
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.***

#26 2010-12-02 00:12:25

EvanE
Member
Registered: 2009-11-30
Posts: 5,716

Re: Offline Kartenmaterial für Java-Swing

Sc0rP1En wrote:

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?

Es sieht so aus, als würde dein JXMapKit den falschen Startpunkt verwenden.
Aus http://wiki.openstreetmap.org/wiki/Slip … es#X_and_Y

* X goes from 0 (left edge is 180 °W) to 2zoom -1 (right edge is 180 °E)
    * Y goes from 0 (top edge is 85.0511 °N) to 2zoom -1 (bottom edge is 85.0511 °S) in a Mercator projection
For the curious, the num 85.0511 is the result of arctan(sinh(π)). By using this bound, the entire map becomes a (very large) square.

Tile 12/2158/1432 liefert Bregenz, Tile 12/2156/1436 liefert die westliche Ecke von Vorarlberg/Österreich (Grenze Österreich/Schweiz/Lichtenstein).

Das heißt, die Tile-Nummern in deinem Verzeichnis passen, das was JXMapKit anfordert passt nicht.
Du kannst mit PHP Calc for OSM ein wenig rumspielen (Bounding-Box an Vorarlberg anpassen) und sehen welchen Bewreich an Tile-Nummern du dann erhältst.

Edbert (EvanE)

Last edited by EvanE (2010-12-02 00:14:45)

Offline

#27 2010-12-02 08:05:57

!i!
Member
Registered: 2009-11-28
Posts: 3,313
Website

Re: Offline Kartenmaterial für Java-Swing

Hmm was für eine TileFactory verwendest du?


privater Account von KVLA-HRO-Mei

Offline

#28 2010-12-02 09:04:55

Sc0rP1En
Member
Registered: 2010-11-26
Posts: 16

Re: Offline Kartenmaterial für Java-Swing

Guten Morgen

@EvanE
ich werde heute Nachmittag mal damit herumprobieren. Vielleicht finde ich eine Umrechnung auf die vom JXMapKit geforderten Tiles. Eine Einstellung zum Ändern habe ich bislang noch nicht gefunden.

@!i!
Ich verwende die standard Swing TileFactoryInfo und TileFactory:

       final int max = 17;
       TileFactoryInfo fact = new TileFactoryInfo(12,17,max,256,true,true,"file:/C:/tiles2/","x","y","z"){
        
    public String getTileUrl(int x,int y,int z){
            //z=max-z;
            return this.baseURL+z+"/"+x+"/"+y+".png";
        }
        };
       
 TileFactory tf = new DefaultTileFactory(fact);
        
    jxmapkit1.setTileFactory(tf);
    jxmapkit1.setDefaultProvider(org.jdesktop.swingx.JXMapKit.DefaultProviders.Custom);
    jxmapkit1.setAddressLocation(new GeoPosition(47.4493,9.7261));

Offline

#29 2010-12-02 10:39:49

!i!
Member
Registered: 2009-11-28
Posts: 3,313
Website

Re: Offline Kartenmaterial für Java-Swing

Hmm dann musst du die doch nur anpassen und die Berechnungen aus der Wiki Seite einfügen?


privater Account von KVLA-HRO-Mei

Offline

#30 2010-12-02 10:53:29

Sc0rP1En
Member
Registered: 2010-11-26
Posts: 16

Re: Offline Kartenmaterial für Java-Swing

ich weiß ja nicht, was die TileFactory für Daten verwendet. Die korrekten Tile-Nummern scheinen es ja nicht zu sein und wie Koordinaten sieht es auch nicht aus. :-/

Offline

#31 2010-12-02 11:11:13

Nodefinder
Member
Registered: 2010-03-23
Posts: 77

Re: Offline Kartenmaterial für Java-Swing

Schau dir mal die main-Funktion in der Klasse JXMapKit an. Dort wird in ein paar Zeilen ein OSM-Viewer zusammengebaut (mit dem OpenStreetMap DefaultProvider). Und der Viewer funktioniert, d.h. die Tiles werden korrekt geladen.

Vergleich doch mal den Code dort mit deinem Code. Vielleicht ergibt sich dann, was fehlt.

Offline

#32 2010-12-02 13:17:44

Sc0rP1En
Member
Registered: 2010-11-26
Posts: 16

Re: Offline Kartenmaterial für Java-Swing

sry für die blöde Frage, aber wie schau ich die main dieser Klasse an?^^ Die ist doch in der Swinglib drinnen? Wenn ich diese Jar extrahiere und dann die .class Datei öffne, zeigt er mir nichts an :-/

Last edited by Sc0rP1En (2010-12-02 13:37:18)

Offline

#33 2010-12-02 14:21:39

Nodefinder
Member
Registered: 2010-03-23
Posts: 77

Re: Offline Kartenmaterial für Java-Swing

Du kannst dir den Sourcecode von http://swinglabs.org/downloads.jsp herunterladen. Projekt SwingX-WS.

Offline

#34 2010-12-02 15:35:39

Sc0rP1En
Member
Registered: 2010-11-26
Posts: 16

Re: Offline Kartenmaterial für Java-Swing

habs mir gerade angeschout. Beim OSM default.provider war es ein bisschen anders, habe es aber nun angepasst. Das Problem war die minimale Zoomstufe. Ich habe nur Tiles ab 12 bis 17... muss aber im Konstruktor 1 angeben, damit er die richtige Ordnerstruktur aufbaut (so wie ich sie habe) .. sonst beginnt er bei Zoomstufe 12 mit der Tilenr. 0 und 1 etc...

Wenn ich jetzt auf 12 Zoome bekomme ich die Tiles angezeigt. Leider nur irgendwie zufällig. D.h. sie werden nicht richtig aneinandergereit.

EDIT: habs gelöst!!! Das Problem war, dass meine Tiles unvollständig waren. Nun funktioniert es und ich kenn mich jetzt auch ein bisschen damit aus big_smile

Danke für eure Hilfe und dass ihr meine "blöden" Fragen beantwortet habt! smile

Last edited by Sc0rP1En (2010-12-02 17:42:56)

Offline

#35 2012-05-02 12:21:17

Krecker
Member
Registered: 2012-05-02
Posts: 2

Re: Offline Kartenmaterial für Java-Swing

Hi Leute,

sorry dass ich den Thread noch alrauskrame. Ich habe fast genau das gleiche Problem wie Scorpien, für das hier ja schon eine Lösung präsentiert wurde. smile  Allerdings will ich in meinem Programm nur Deutschland abdecken mit selbstgemachten Tiles. Jetzt habe ich mir mal tstweise die obersten Zoomstufen Tiles Deutschlands von osm runtergeladen, was so um die 100 waren.

Das Problem ist, dass es dem jxmapkit gar nicht gefällt, dass er nicht alle Tiles findet, da man ja auch immer wieder mal mehr als Deutschland sieht beim navigieren Dann kommen dutzendweise Exceptions:

Schwerwiegend: Failed to load a tile at url: file:/C:/tiles2/12/17/16.png, retrying
java.io.FileNotFoundException: C:\tiles2\12\17\16.png (Das System kann den angegebenen Pfad nicht finden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:97)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at java.net.URL.openStream(URL.java:1035)
	at org.jdesktop.swingx.mapviewer.AbstractTileFactory$TileRunner.cacheInputStream(AbstractTileFactory.java:348)
	at org.jdesktop.swingx.mapviewer.AbstractTileFactory$TileRunner.run(AbstractTileFactory.java:307)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)

Kann ich das getrost ignorieren? Oder muss ich mir selber was programmieren um vorher alle lokalen Tiles in einer Liste zu speichern und das JXMapKit modifizieren, dass er nur Tiles aus der Liste holt? hmm Was anders fällt mir im Moment nicht ein...

Offline

#36 2012-05-09 15:40:15

Sc0rP1En
Member
Registered: 2010-11-26
Posts: 16

Re: Offline Kartenmaterial für Java-Swing

Hallo Krecker

Habe gerade deine PN erhalten. Die Exception kannst du ignorieren. So habe ich es zumindest gemacht, da ich nur einen bestimmten Ausschnitt brauchte und alles andere für mich nicht relevant war.

Ansonsten müsstest du die komplette Weltkarte runterladen und das wäre eine riesen Menge an Daten.

Hoffe ich konnte dir helfen.

greets
Sc0rP1En

Last edited by Sc0rP1En (2012-05-09 16:03:07)

Offline

#37 2012-05-29 19:51:16

Krecker
Member
Registered: 2012-05-02
Posts: 2

Re: Offline Kartenmaterial für Java-Swing

hey!

Danke für die Antwort. Dann werde ich es so mal probieren. Den Code abzuändern um das abzufangen wäre wirklich nicht so einfach...

Offline

Board footer

Powered by FluxBB