WMS

Aus GISpunkt HSR
Version vom 3. Mai 2017, 15:09 Uhr von Stefan (Diskussion | Beiträge) (Bekannte WMS Server)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ein Web Map Service (WMS) (auch: WMS-Dienst) ist ein eine normierte Schnittstelle, um (rasterbasierte) Karten zu generieren. Ein WMS beruht auf OGC's "WMS Implementation Specification".

Siehe auch:


Allgemeines

Siehe auch WFS Web Map Tiling und Caching.

Einführung:

Pseudo-REST API (HTTP Parameter):

  • GetCapabilities: Als Antwort wird eine Selbstbeschreibung als XML-Dokument zurückgeschickt, das neben allgemeinen Angaben zum Anbieter des WMS die unterstützten Ausgabeformate des WMS zu den verschiedenen Anfragen sowie die abfragbaren Layer für die Karte beinhaltet.
  • GetMap: Liefert ein georeferenzierte Karte (Raster z.B. tiff, png) zurück.
  • GetFeatureInfo (optional): Anfrage zu einer Position im dargestellten Kartenausschnitt. Als Antwort werden Informationen der zugrundeliegenden Layers geliefert, in der Regel im XML- oder HTML-Format.

Bekannte WMS Server

Auswahl von bekannten WMS-Servern:

WMS-Kataloge und Suchmaschinen

Suchmaschinen (Harvester):

Listen/Verzeichnisse:

Seeds:

Software

WMS-Clients für Desktop-Applikationen

WMS-Clients für Web-Applikationen

WMS-Clients für Mobiles

  • Für Android
    • mobiledroidgis - Request and visualise SOS, WMS, GeoRSS and GOCAD data with Android
    • MGMaps Lib] - Fa. Nutiteq’s Android libraries
    • gvSIG mini
    • AndNav2 - osmdroid provides Tools / Views to interact with OpenStreetMap-Data. The OpenStreetMapView is a (almost!???) full/free replacement for Androids MapView class.

WMS-Server-Software

WMS-Werkzeuge/Tools

  • WMS-Validator?
  • Gateway, der WMS-Daten in Google Earth darstellen kann. Webapplikation, die zwischen einem auf dem Desktop installierten Google Earth und dem WMS-Server steht. Realisiert wurde dies mittels zweier PHP-Scripts: Das "GE_KML_LINK.php"-Script realisiert den Google Earth-Netzwerklink und das "GE_KML.php"-Script beliefert den Netzwerklink mit Daten aus dem WMS-Server.

Tutorien

Siehe auch Standard WMS, WFS and WCS: a short introduction.

WMS testen

WMS-Server können mit einem normalen Web Browser oder - noch besser - mit der Kommandozeilen-Software 'curl' oder 'wget' aufgerufen und dann z.B. mit IrfanView angezeigt werden. In jedem Falle müssen mind. alle obligatorischen URL-Parameter angegeben werden, u.a. version, format, crs, layers, bbox, width, height etc. Beispiele siehe unten.

Tipps:

  • Offizieller 'Compliance Test' von OGC für WMS 1.1.1.
  • Man beachte, dass das Verhältnis zwischen den width- und height- Parametern gleich ist wie für die bbox.

Einfache WMS-Übung

Aufgabe 1.a) Web Map Services im Internet finden

Suchen Sie im Internet nach OpenGIS Web Map Services, wie oben angegeben.

Untersuchen Sie den Inhalt, d.h. die verfügbaren Layers, mit 'GetCapabilities':

Aufgabe 1.b) GetMap-Request formulieren

Formulieren Sie einen GetMap-Request an den SOGIS-Ortsplan, mit welchem ein PNG-Bild mit folgenden Eigenschaften erstellt wird:

  • Inhalt: Bodenbedeckung, Grundbuchparzellen mit Parzellennummern.
  • CH-Landeskoordinaten der Bildecke links unten: 607500 / 228500
  • Durch das Bild repräsentierte Boden-Fläche: 300m x 300m
  • Bildschirm-Ausmass des Bildes: 500 Pixel x 500 Pixel

Verwenden Sie dazu folgendes URL-Gerüst - bei fehlenden Parameter-Werten stehen zwei Ausrufezeichen (also '!!'):

Tipps zu WMS

Publizieren von GeoTIFF als WMS

Ein Lösungsansatz gibt es mit QGIS Cloud und PostGIS Raster:

  • QGIS starten und QGIS Cloud Plugin installieren und Konto anlegen:
    • QGIS starten (bzw. vorher QGIS installieren).
    • QGIS Cloud Plugin installieren (siehe QGIS).
    • im QGIS CloudPlugin Cloud-Datenbank erzeugen und sich die Parameter merken.
  • GeoTIFF-Daten hochladen mit lokalen Kommandozeilenprogramm raster2pgsql => Siehe PostGIS Raster.
  • im QGIS, WMS als Layer laden
  • im QGIS mit QGIS Cloud Plugin Karte publizieren.
  • Fertig, bzw. mit einem WMS Client und den entspr. Parametern des QGIS Cloud-Projekts testen.

Download von WMS-Rasterdaten zur lokalen Verwendung

Gegeben sei ein WMS, hier Kt.ZH UeP: [1]

  • Test ganzer Kanton ((EPSG:21781, BBOX minx="654500" miny="222400" maxx="720000" maxy="284900") in max. Auflösung wäre zu gross (ca. 2 GB!): </nowiki>wms.zh.ch/upwms?service=WMS&version=1.3.0&request=GetMap&bbox=654500,222400,720000,284900&width=14335&height=14335&format=image/png&layers=upwms&crs=EPSG:21781</nowiki>
  • Hombi (300x200 Pixel): [2]

gdalinfo:

 gdalinfo "WMS:http://wms.zh.ch/upwms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=698522,232965,701777,235179&WIDTH=10000&HEIGHT=7000&FORMAT=image/png&LAYERS=upwms&CRS=EPSG:21781"

Note the removal of "WMS:" prefix in front of the URL, and the GDAL_SKIP=WMS, since the WMS driver would also try to recognize the string as a description string of the WMS service, which you don't want. You just want the JPEG driver to recognize the image resulting of the GetMap query.

 GDAL_SKIP=WMS
 gdal_translate -of GTiff -co "TFW=YES" -a_srs EPSG:21781 -a_ullr 698522 235179 701777 232965 "http://wms.zh.ch/upwms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=698522,232965,701777,235179&WIDTH=10000&HEIGHT=7000&FORMAT=image/png&LAYERS=upwms&CRS=EPSG:21781" out.tif 

Achtung: Unterschiedliche BBOX-Angaben in WMS und gdal: Gegeben ulx=-76.80 lrx=-67.85 lry=34.58 uly=41.71 crs=EPSG:4326 und WMS-url:

 WMS BBOX=$ulx,$lry,$lrx,$uly
 gdal_translate -a_srs ${crs} -a_ullr $ulx $uly $lrx $lry foo.png foo.tif

Qualitäts- und Performance-Kriterien

Die Europäischen Union vom Oktober 2009 hat eine Verordnung zu Netzdiensten, umfassend Suchdienste sowie Darstellungsdienste, veröffentlicht. Die europäischen Mitgliedstaaten müssen diese bis November 2011 realisiert haben. Quelle: Verordnung Nr. 976/2009 vom 19. Oktober 2009 zur Durchführung der Richtlinie 2007/2/EG. Gefunden via [3])):

Für die Dienstqualität (Leistung, Kapazität und Verfügbarkeit) u.a. von WMS gelten die folgenden Kriterien:

  1. Leistung: Für ein Bild mit 470 Kilobyte (z.B. 800×600 Pixel mit einer Farbtiefe von 8 Bit) beträgt die Antwortzeit für das Senden eines ersten Ergebnisses auf eine "GetMap"-Anfrage an einen Darstellungsdienst in einer normalen Situation höchstens 5 Sekunden. Mit einer normalen Situation ist ein Zeitraum ohne Spitzenbelastung gemeint. Eine normale Situation ist 90% der Zeit gegeben.
  2. Kapazität: Pro Sekunde können gemäss der Leistungsqualität des Dienstes mindestens 20 Anfragen an einen Darstellungsdienst gleichzeitig bearbeitet werden.
  3. Verfügbarkeit: Ein Netzdienst soll 99% der Zeit verfügbar sein.

Siehe dazu auch:


Weblinks / Lists