Karten über WMS erzeugen?

  • Herzlichen Dank für deine Arbeit René,


    jetzt klappt es ohne Probleme.


    Super Tool, genau sowas hat mir noch gefehlt, weil die Karten doch besser sind, als die auf meiner alten MagicMaps. Außerdem geht das runterladen ja auch super flott.


    Danke,
    Michael

  • Zitat

    Original von ReRo
    Anschließend braucht man die Koordinaten der linken unteren Ecke als minx und miny des zu ladenden Gebietes im entsprechenden Koordinatensystem (am besten mit dem Deutschlandviewer ermitteln).
    Hinweis: GK-System, 6° ist EPSG:31466, 9° ist EPSG:31467 usw.


    Kann mir mal bitte jemand helfen, was es hiermit auf sich hat?


    Ich möchte beispielsweise die Koordinaten
    N 49° 06.172 E 007° 52.376
    umrechnen in Gauss-Krüger.
    Mit CacheWolf umgerechnet ergibt das:
    R:3417777 H:5441240


    Wenn ich diese Zahlen als Ecke für das Tool verwende:
    java WMS2Glopus de-rlp_topo_50 3417777 5441240 0 800 2 2 > o.txt
    dann erzeugt er nur leere Bitmaps.


    Schaue ich mir die Debug-Ausgabe an, dann sehe ich folgendes:
    DEBUG: cs2csInput: 3417777 5445240
    DEBUG: cs2csOutput: 18.42330342 48.46953482 -7.444


    und diese Koordinaten liegen irgendwo im fernen Osten (ich glaube, Tschechei). Da findet er natürlich bei rlp_topo keine Karten.


    Irgendwo habe ich hier wohl die falschen Ecken-Koordinaten verwendet. Hängt das irgendwie mit diesen "Streifen" zusammen und wie kann ich die korrekten Koordinaten ermitteln?


    Edit:
    Inzwischen habe ich noch ein anderes Problem: Nachdem es gestern abend auf meinem Notebook zumindest lief, kann ich auf meinem PC die Klasse nicht starten.
    Es ergibt sich folgende Fehlermeldung:


    Exception in thread "main" java.lang.NoClassDefFoundError: wms2glopus


    Ich kenne mich jetzt mit Java überhaupt nicht aus, aber er scheint hier irgendeine Klassendefinition zu erwarten und nicht zu finden... Meine Java RE hat übrigens die Version 1.4.2_03

    Einmal editiert, zuletzt von AndRo ()

  • Hallo Andreas,


    ja, das hängt irgendwie mit diesen "Streifen" zusammen. Ich will versuchen, es kurz zu erklären (eine umfassendere Erklärung zum Gauß-Krüger-System gibt es z. B. bei Wikipedia).


    Im Gauß-Krüger-System wird die Erde in 3° breite Streifen aufgeteilt. Diese werden jeweils mit ihrem Mittelmeridian bezeichnet. Der 6°-Streifen geht also von 4°30' bis 7°30' (theoretisch, in der Praxis gibt es einen kleinen Überlappungsbereich, siehe dazu den Wikipedia-Artikel). Der Rechtswert der Gauß-Krüger-Koordinate gibt immer die Entfernung zu diesem Meridianstreifen in Metern an (damit die Werte nicht negativ werden wird in der Regel ein fester Wert von z. B. 500000 addiert).
    Um nun einen GK-Punkt eindeutig zu definieren, benötigt man also neben dem Rechts- und dem Hochwert auch immer eine Angabe, welcher Streifen als Grundlage genommen wird, um den Rechtswert interpretieren zu können.
    Der Punkt für deine Umrechnung liegt bei 7° 52' Ost, das heißt eigentlich im 3. GK-Streifen (dem 9°-Streifen). Dementsprechend hat CacheWolf dir auch korrekt den Rechts- und Hochwert für den 9°-Streifen ausgerechnet. Dazu muss man noch sagen, dass alle Werte, die im 9°-Streifen gültig sind auch im 6°-Streifen gültig sind, nur eben mit einer entsprechenden Verschiebung.


    Nun ist es aber so, dass Rheinland-Pfalz teilweise im 6°- und teilweise im 9°-Streifen liegt (siehe z. B. hier). Daher akzeptiert der WMS-Service Angaben in beiden Systemen. Dementsprechend steht in der de-rlp_topo_50.wms auch:
    CoordinateReferenceSystemCacheWolf: 31466 31467
    WMS2Glopus verwendet nun automatisch immer den ersten Code, der hier angeben ist, d. h. 31466 und somit den 6°-Streifen.


    Du hast also zwei Möglichkeiten: entweder du rechnest deine Koordinaten in GK-Werte für den 6°-Streifen um (also in deinem Fall 2636800 5442322) oder du sagst WMS2Glopus (und damit dem WMS-Server), dass der 9°-Streifen verwendet werden soll:
    java WMS2Glopus de-rlp_topo_50 3417777 5441240 0 800 1 1 31467


    Und was deinen Nachtrag angeht: ich vermute, du hast beim Aufruf wms2glopus statt WMS2Glopus geschrieben - Java ist was die Groß-/Klein-Schreibung angeht leider sehr genau.


    Viel Erfolg,
    René

  • Danke für die schnelle Antwort, René,


    den Parameter "Koordinatensystem" hatte ich in der Eifer des Gefechts (und in der Vorfreude) glatt übersehen.


    Wegen der Groß-/Kleinschreibung: Ich habe genau die folgende Form genommen (aus einer .CMD-Datei heraus, daher kann ich Tippfehler ausschließen):


    java WMS2Glopus de-rlp_topo_50 3417777 5441240 0 800 2 2 31467 > o.txt


    Sollte doch eigentlich stimmen, oder?

  • Hallo Andreas,


    das ist sehr merkwürdig. Wenn er bei mir die Klasse nicht finden kann, dann gibt er
    Exception in thread "main" java.lang.NoClassDefFoundError: WMS2Glopus
    aus, d. h. mit Großbuchstaben. Klappt es denn, wenn du den java-Befehl direkt in der Kommandozeile eingibst (statt in einer CMD-Datei)? Bitte beachte auch, dass du dich immer in dem Verzeichnis befinden muss, in dem die WMS2Glopus.class liegt. Kannst du vielleicht die CMD-Datei mal hier attachen, falls du es mit diesen Tipps nicht zum Laufen bekommst?


    Gruß,
    René

  • Hallo René,


    in der Fehlermeldung steht WMS2Glopus (groß/klein geschrieben), aber es funktioniert nicht.
    Auch ein Aufruf


    java WMS2Glopus


    (ohne Parameter)
    führt zum selben Fehler.


    Ich habe deine Dateien auf dem Desktop in einem Ordner "Kartenerstellung\WMS" erstellt, die Proj.4 - Datein in einem entsprechenden Unterverzeichnis auch in diesem Ordner. Dies auch in die .ini-Datei eingetragen.


    Anbei ein Bild der Ordnerstruktur, die .ini und die .cmd-Datei.


    Vielleicht siehst du etwas, was ich übersehen habe?

  • Hallo Andreas,


    eine Idee habe ich noch. Möglicherweise ist auf deinem Rechner eine Classpath-Umgebungsvariable gesetzt, die nicht das aktuelle Verzeichnis enthält. Bitte prüfe das, indem du in der Kommandozeile
    SET CLASSPATH
    eingibst. Kommt dann eine Ausgabe, die so aussieht:
    CLASSPATH=<irgendwas>
    und <irgendwas> ist eine Liste von Pfaden, die nicht "." enthält, dann ist das das Problem.
    Du kannst dann mit
    set CLASSPATH=%CLASSPATH%;.
    den Classpath ergänzen. Anschließend solltest du mit
    java WMS2Glopus
    das Programm starten können und die Hilfe angezeigt bekommen.
    Alternativ kann du WMS2Glopus mit folgendem Befehl starten:
    java -classpath . WMS2Glopus
    Dann sollte es auf jeden Fall gehen (ohne dass die Classpath-Variable umgesetzt wird).


    TIPP (wo wir schonmal dabei sind): Du kannst auch dein Installationsverzeichnis (also "C:\Dokumente und Einstellungen\Andreas\Desktop\Kartenerstellung\WMS") in den Classpath mit aufnehmen und die Classpath-Variable über die Systemeigenschaften von Windows setzen (siehe diesen Microsoft-Artikel), dann kannst du WMS2Glopus aus jedem beliebigen Verzeichnis starten. Auf diese Weise solltest du auch "." mit aufnehmen, dann kannst du WMS2Glopus auch ganz normal starten.


    Bitte sag Bescheid, ob das geholfen hat.


    Viel Erfolg,
    René

  • java -classpath . WMS2Glopus


    Das war die Lösung!!


    Ich hatte mir wohl irgendwann einen Classpath-Eintrag auf eine Java-Version eingefangen, die es schon lange nicht mehr auf meinem Rechner gibt...


    Jetzt läuft es problemlos durch.


    Danke schön für die Hilfe und das tolle Programm!! :)

    2 Mal editiert, zuletzt von AndRo ()

  • Hallo ReRo,
    heute die ersten Ergebnissen meiner Nutzungsversuche ausgehend vom Thread Norwegenkarten (http://forum.pocketnavigation.de/tid1096240-sid.htm)


    die no_sat.wms: Lädt Satelliten-Bilder von "Norge i bilder". klappen einwandfrei :D - nachdem ich die mit GMM mir ansehen kann und die Kalibrierung auch da ist denke ich ist alles i.o. :)


    danach habe ich den gleichen Befehl in der Eingabe wie vorher aber mit no_ortho - gemacht


    D:\Daten_2002_2003_2004_2005\BÜRO\PocketPC\Karten_erzeugen>java WMS2Glopus no_ortho 791349 6824280 10 800 2 2 32631


    D:\Daten_2002_2003_2004_2005\BÜRO\PocketPC\Karten_erzeugen>java WMS2Glopus no_or
    tho 791349 6824280 10 800 2 2 32631
    Loading row 0 column 0 ... java.io.IOException: Server returned HTTP response co
    de: 400 for URL: http://wms.norgeibilder.no/ser…s/wms.aspx?REQUEST=GetMap
    &VERSION=1.1.1 &SERVICE=WMS &LAYERS=Backdrops&SRS=EPSG:32631&FORMAT=image/png&ST
    YLES=&WIDTH=800&HEIGHT=800&BBOX=791349,6824280,799349,6832280
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown So
    urce)
    at WMS2Glopus.download(WMS2Glopus.java:212)
    at WMS2Glopus.loadTileWMS(WMS2Glopus.java:188)
    at WMS2Glopus.main(WMS2Glopus.java:144)


    ======== UNEXPECTED ERROR ========


    An unexpected error occured. Please check your configuration


    Error: java.io.IOException: Server returned HTTP response code: 400 for URL: htt
    p://wms.norgeibilder.no/services/wms/wms.aspx?REQUEST=GetMap&VERSION=1.1.1 &SERV
    ICE=WMS &LAYERS=Backdrops&SRS=EPSG:32631&FORMAT=image/png&STYLES=&WIDTH=800&HEIG
    HT=800&BBOX=791349,6824280,799349,6832280


    Stacktrace:
    java.io.IOException: Server returned HTTP response code: 400 for URL: http://wms
    .norgeibilder.no/services/wms/wms.aspx?REQUEST=GetMap&VERSION=1.1.1 &SERVICE=WMS
    &LAYERS=Backdrops&SRS=EPSG:32631&FORMAT=image/png&STYLES=&WIDTH=800&HEIGHT=800&
    BBOX=791349,6824280,799349,6832280
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown So
    urce)
    at WMS2Glopus.download(WMS2Glopus.java:212)
    at WMS2Glopus.loadTileWMS(WMS2Glopus.java:188)
    at WMS2Glopus.main(WMS2Glopus.java:144)


    Debug output:
    scale = 10.0
    meter per tile = 8000
    overlap = 400
    cs2csCall: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\bin\c
    s2cs.exe -f %.8f +init=epsg:32631 +to +proj=latlong +datum=WGS84 +ellps=WGS84
    cs2csProjLib: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\na
    d
    cs2csInput: 791349 6832280
    cs2csOutput: 8.48001399 61.51381225 0.000
    cs2csCall: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\bin\c
    s2cs.exe -f %.8f +init=epsg:32631 +to +proj=latlong +datum=WGS84 +ellps=WGS84
    cs2csProjLib: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\na
    d
    cs2csInput: 791349 6824280
    cs2csOutput: 8.46742745 61.44232170 0.000
    cs2csCall: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\bin\c
    s2cs.exe -f %.8f +init=epsg:32631 +to +proj=latlong +datum=WGS84 +ellps=WGS84
    cs2csProjLib: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\na
    d
    cs2csInput: 799349 6832280
    cs2csOutput: 8.62964070 61.50770222 0.000
    cs2csCall: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\bin\c
    s2cs.exe -f %.8f +init=epsg:32631 +to +proj=latlong +datum=WGS84 +ellps=WGS84
    cs2csProjLib: D:\Daten_2002_2003_2004_2005\B▄RO\PocketPC\Karten_erzeugen\proj\na
    d
    cs2csInput: 799349 6824280
    cs2csOutput: 8.61671485 61.43622973 0.000
    wmsCompleteUrl = http://wms.norgeibilder.no/ser…s/wms.aspx?REQUEST=GetMap
    &VERSION=1.1.1 &SERVICE=WMS &LAYERS=Backdrops&SRS=EPSG:32631&FORMAT=image/png&ST
    YLES=&WIDTH=800&HEIGHT=800&BBOX=791349,6824280,799349,6832280


    hmm keine Ahnung ?(


    nächster Versuch mit no-topo:


    bei no_topo wird was erzeugt (Png+Kal-Dateien) aber in GGM sind nur die Kartenumrisse (Viereck) sichtbar - auch mit Paint ist die *.png nicht anzeigbar - da wird gesagt "keine gültige Bit-map-datei


    ich werde noch ein bisl rumprobieren - mal sehen ob ich was anderes rausbekomme


    trotzdem vielen Dank für deine Mühe
    MFG Holzmichl

    Einmal editiert, zuletzt von Holzmichl_DD ()

  • Vielleicht probiert ihr erst einmal in Quantum GIS (kostenlos), ob der WMS-Dienst überhaupt funktioniert:


    http://www.qgis.org/


    Darin kann man sehr schön auch verschiedene Karten-Layer überlagern. Via Plugins auch GPX-Tracks und SHP-Shapes.

  • Hallo Holzmichl, hallo Frank,


    nebuchad1: Danke für den Hinweis, werde ich mir mal ansehen. Ich kann allerdings in diesem Fall sagen, dass die WMS-Dienste definitiv funktioniert haben.


    krösus: Und hier die Lösungen für deine Probleme:


    1. no_ortho:
    Hier ist mir leider ein kleiner Fehler in der .wms-Datei unterlaufen. Hinter einigen Einträgen waren überflüssige Leerzeichen reingerutscht. Bei mir hatte ein Test sonderbarerweise geklappt, aber ich denke, deine Fehlermeldung (HTTP 400 heißt "Bad Request") beruht vermutlich darauf. Eine korrigierte Datei findest du im Anhang.
    Mit folgende Parametern hatte ich damit definitiv Erfolg:
    no_ortho 470514 6460729 5 1000 1 1 32632


    2. no_topo:
    Anscheinend ändert sich die URL für den Dienst immer mal wieder, da hier nur kurzzeitig gültige Tickets vergeben werden. Was da soll, weiß ich auch nicht. Grundsätzlich sollte man in solchen Fällen, wenn ein Grafikprogramm sagt, dass die Bilddatei ungültig ist, die .png Datei mal in .txt umbenennen und in einem Texteditor öffnen. Dort war in diesem Fall zu lesen, dass das Ticket ungültig ist. Das Ticket wird in der Basis-URL vor dem Fragezeichen mit "TI_xxxxxx" eingefügt.


    Ich habe mal eine aktualisierte Datei angehängt mit dem aktuell gültigen Ticket. Die Tickets werden jeweils unter http://www.geonorge.no/advancedTicket/go veröffentlicht (dort findet man auch noch einige andere WMS-Services für Norwegen).
    Mit folgende Parametern hatte ich damit definitiv Erfolg:
    no_topo 470514 6460729 5 1000 1 1 32632


    Falls es wieder nicht klappt, schau bitte dort nach dem aktuellen Ticket. Ich weiß nicht, in welcher Frequenz das geändert wird. Such auf der oben genannten Seite einfach nach "wms.topo" und kopiere die Adresse aus featuredLink[1] in die no_topo.wms als MainUrl.


    Viel Erfolg,
    René

  • Hat eigentlich schon mal jemand einen WMS-Dienst von Österreich gefunden?
    Bisher bin ich nur für Niederösterreich fündig geworden, Tirol beispielsweise ist mit noch nicht untergekommen...

  • Hallo AndRo,


    ja, das gibt es inzwischen einen brauchbaren WMS-Dienst, und zwar von geoland.at (siehe Menüpunkt "WMS-Export"). Da gibt es zwar keine topografischen Karten, aber immerhin Straßenkarten und Luftbilder und diverse andere Layer (z. B. Naturschutzgebiete etc.).


    Hier ein paar Beispiele:
    [URL=http://www.geoland.at/geolandWMS/service.aspx?VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&LAYERS=Iso20m,Farborthofoto&STYLES=,&SRS=EPSG:31297&BBOX=242500,375500,243500,376500&WIDTH=1000&HEIGHT=1000&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage]Luftbild[/URL]
    [URL=http://www.geoland.at/geolandWMS/service.aspx?VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&LAYERS=Bezirke,Gemeinden,Landesgrenzen,Natura2000_SPA,Natura2000_pSCI,Naturpark,Landschaftsschutzgebiet,Nationalpark,Naturschutzgebiet,gesch%C3%BCtzte%20Landschaftsteile,sonstige%20Schutzgebiete,Autobahn,Landesstr_B,Landesstr_L,Orientierungskarte,Iso20m,Geonamen&STYLES=,,,,,,,,,,,,,,,,&SRS=EPSG:31297&BBOX=242500,375500,243500,376500&WIDTH=1000&HEIGHT=1000&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage]Straßenkarte[/URL]
    [URL=http://www.geoland.at/geolandWMS/service.aspx?VERSION=1.1.1&REQUEST=GetMap&SERVICE=WMS&LAYERS=Bezirke,Gemeinden,Landesgrenzen,Natura2000_SPA,Natura2000_pSCI,Naturpark,Landschaftsschutzgebiet,Nationalpark,Naturschutzgebiet,gesch%C3%BCtzte%20Landschaftsteile,sonstige%20Schutzgebiete,Autobahn,Landesstr_B,Landesstr_L,Orientierungskarte,Iso20m,Geonamen,Farborthofoto&STYLES=,,,,,,,,,,,,,,,,,&SRS=EPSG:31297&BBOX=242500,375500,243500,376500&WIDTH=1000&HEIGHT=1000&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE&EXCEPTIONS=application/vnd.ogc.se_inimage]Luftbild mit Straßen[/URL]


    Diese Karten müssten eigentlich auch problemlos mit WMS2Glopus abrufbar sein. Man müsste sich nur eine .wms-Beschreibung basteln. Ich werde mich mal dransetzen und sie dann hier ggf. anhängen.


    Gruß,
    René

  • Hallo René,


    danke dass du dich so schnell darum kümmerst.


    Ich habe gestern abend noch eine topographische Karte gefunden, weiß aber nicht, ob es sich hierbei um einen WMS-Dienst handelt:


    Tiris


    Vielleicht kannst du ja hiermit etwas anfangen?

  • Hallo Andreas,


    anbei erstmal zwei .wms-Konfigurationsdateien, mit denen man Farborthofotos oder eine Straßenkarte mit Orthofoto-Hintergrund von geoland.at laden kann.
    Man braucht dazu die neue Version (v 0.3) von WMS2Glopus, die auch mit ausländischen WMS-Diensten klarkommt und die ich für Holzmichls Norwegen-Karten bereits dort in Thread hochgeladen habe. Ich habe sie jetzt auch hier nochmal attacht. Man kann sie einfach über die alte Version drüberkopieren (.ini-Datei vorher sichern).


    Aufruf z. B. so:
    java WMS2Glopus at_ortho_10 242500 375500 1 1000 1 1
    java WMS2Glopus at_street_10 242500 375500 1 1000 1 1


    Die Koordinaten kann man z. B. aus dem Mapbender-Viewer erhalten, der bei geoland.at verlinkt ist und die WMS-Dienste darstellt.


    Was tiris angeht muss ich dich leider enttäuschen, dort wird kein WMS-Dienst angeboten, über den man die topografischen Karten laden könnte. Zumindest habe ich bisher auch keinen gefunden. :(


    Viel Spaß,
    René