3. GeoShop WMS Client

3.1. Überblick

Der GeoShop WMS Server als WMS Client ermöglicht das Einbinden von Layern fremder WMS Server in GeoShop Views.

3.2. Installation

3.2.1. Installation des WMS Client

Der WMS Client wird in folgenden Teilschritten installiert:

  1. Installation der Programmdateien (nur falls Datei noch nicht vorhanden):

    Kopieren der Datei WMSAdapter.jar nach GEOSHOP_DIR\system\bin.

  2. Installation der IL2GEO-Konfiguration (nur falls Datei noch nicht vorhanden)::

    Kopieren der Datei WMS.cfg nach GEOSHOP_DIR\\system\script\script\il2geo.

  3. Installation des INTERLIS Modelles WMS.ili (nur falls nicht bereits vorhanden):

    Kopieren des INTERLIS Modelles WMS.ili in das Upload Verzeichnis GEOSHOP_DIR\data\upload des GeoShops. Das INTERLIS Modell wird in den GeoShop integriert.

  4. Anpassen von GEOSHOP_DIR\user\options\appserver.opt (nur falls noch nicht vorhanden):

    Einfügen folgendes neuen Eintrages:

    MAP
       ...
       WMSAdapter MAP
       }
       ...
    }

  5. Ergänzen der Datei GEOSHOP_DIR\user\services\services.srv (nur falls nicht bereits vorhanden):

    Ergänzung der Datei mit dem WMSAdapter:

    LIST
       ...
       MAP
          name STRING geomap
          description STRING 'GeoMap Server'
          module STRING GeoMapServer,WMSAdapter
          server STRING appserver
       }
       ...
    }

    Der WMSAdapter ist als Modul bei einem geomap Service zu definieren.

3.2.2. Testen der Installation

Nach der Erfolgreichen Installation des WMS Client kann der WMS Client wie folgt getestet werden:

[Anmerkung]

Für den Test wird ein Layer eines WMS-Dienstes der Firma Intergraph als Layer in eine View des GeoShop eingebunden

  1. Uploaden des INTERLIS Datenfiles intergraph.itf in den GeoShop:

    Kopieren des INTERLIS Datenfiles intergraph.itf in das Upload Verzeichnis GEOSHOP_DIR\data\upload des GeoShops. Das INTERLIS Datenfile wird in den GeoShop integriert..

  2. Definieren der GeoShop View GEOSHOP_DIR\user\views\wmstest.vi mit folgendem Inhalt:

    MAP
       name STRING wmstest
       display_name STRING 'WMS Client Test'
       background_color STRING 255,255,255
       layers LIST
          MAP
             name STRING WMS_Intergraph
             display_name STRING 'Intergraph (maps1.intergraph.com)'
             state STRING on
          }
       } 
    }

  3. Definieren des GeoShop User GEOSHOP_DIR\user\users\wmstest.usr mit der View wms:

    USER
       name STRING wmstest
       password STRING wmstest
       privileges LIST
          STRING client
          STRING multi
       }
       views LIST
          STRING wmstest
       }
       queries LIST
          STRING xy
       }
       preferences MAP
          range.maxY REAL 100
          range.maxX REAL 100
          range.minY REAL -100
          range.minX REAL -100
       }
    }

  4. Starten des GeoShop Clients in einem Browser und einloggen als User wmstest.

    Im Bildausschnitt sollte nun ein farbiger Kartenausschnitt erscheinen.

    [Anmerkung]

    Der Kartenauschnitt wird vom WMS Server der Firma Intergraph geliefert.

3.3. Konfiguration

3.3.1. Konfiguration von appserver.opt

In GEOSHOP_DIR\user\options\appserver.opt können Sie im Abschnitt WMSAdapter folgende Optionen setzen:

LOG_WMS_REQUESTS

ON oder OFF. OFF (= Default). Loggen der WMS-Requests in Server-Logfile.

3.3.2. Konfiguration WMS Layer

Nachfolgend wird beschrieben, wie weitere Layer von WMS-Diensten in den GeoShop eingebunden werden.

Pro WMS-Layer, der in der GeoShop eingebunden wird, ist ein INTERLIS Datenfile im INTERLIS Modell WMS.ili zu erstellen.

Das INTERLIS Modell WMS.ili hat folgenden Inhalt.

TRANSFER WMS;

MODEL WMS
   DOMAIN
      LKoord = COORD2 000000.000  000000.000
                      840000.000  300000.000;
   TOPIC WMS = 
      TABLE Layer =
         Name: TEXT*20;
         URL: TEXT*255;
         Geometry: SURFACE WITH (STRAIGHTS,ARCS) VERTEX LKoord;
         NO IDENT
      END Layer;
   END WMS.
 
END WMS.

Das Modell besteht aus einer Table, in der ein WMS-Layer definiert wird.

Name

Definiert einen beliebigen Namen für dem WMS-Layer. Dieser Name enstpricht dem GeoShop-Layer der in eine GeoShop-View integriert werden kann.

URL

Basis URL für dem WMS-Dienst.

Geometry

Fläche für die Ausdehung des Layers, der durch den WMS-Dienst unterstützt wird.

[Anmerkung]

Informationen wie die verfügbaren Layer und deren Ausdehung erhalten Sie vom WMS-Dienst mit dem Request getcapabilities.

Beispiel: http://maps1.intergraph.com/wms/world/request.asp?REQUEST=GetCapabilities

Enstprechend ist ein INTERLIS Datenfile zu erstellen, Beispiel:

SCNT
INTERLIS-File generated by infoGrips Conversion System
////
MTID WMS 
MODL WMS
TOPI WMS
TABL Layer
OBJE 1 WMS_Intergraph http://maps1.intergraph.com/wms/world/request.asp?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=GLOBEImage&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE&SRS=EPSG:4326
ETAB
TABL Layer_Geometry
OBJE 1          1         
STPT -180.0  -90.0
LIPT 180.0   -90.0
LIPT 180.0    90.0
LIPT -180.0   90.0
LIPT -180.0  -90.0
ELIN
ETAB
ETOP
EMOD
ENDE

Das INTERLIS Datenfile ist in den GeoShop zu laden, indem das File in das Upload-Verzeichnis GEOSHOP_DIR\data\upload kopiert wird.

Beim Upload wird ein Layer erzeugt, der den gleichen Namen hat, wie der Name im INTERLIS-File definiert ist. Beispiel GEOSHOP_DIR\data\layers\WMS_Intergraph.

In der Basis URL des WMS Layer werden die Parameter für dem WMS Request gemäss den WMS-Spezifikationen definiert. Zusätzlich können folgende weitere Parameter definiert werden. Diese Parameter sind keine Parameter der WMS-Spezifikation und gelten nur für die Anwendung im GeoShop.

GEOSHOP_OFFSET

offset-x,offset.y . Geometrischer Offset für den Request. Die WMS BBOX wird um diesen Offset verschoben. Hilfreich zum Beispiel bei einem WMS der EPSG:2056 zur Verfügung stellt, das Bild aber aus EPSG:21781mit einem fixen Offset von 2'000'000,1'000'000 bereitstellt. Für den verwendeten Bereich ist der Offset aber zu ungenau.

Beispiel für Stadt Zürich: http:// ... ?REQUEST=GetMap ... &GEOSHOP_OFFSET=0.907,-0.158 ...

3.3.3. Konfiguration GeoShop View

Der WMS Layer kann nun in einer GeoShop View unter dem Namen des Layers integriert werden. Beispiel GEOSHOP_DIR\user\views\wmstest.vi :

MAP
   name STRING wmstest
   display_name STRING 'WMS Client Test'
   background_color STRING 255,255,255
   layers LIST
      MAP
         name STRING WMS_Intergraph
         display_name STRING 'Intergraph (maps1.intergraph.com)'
         state STRING on
      }
   } 
}

Die View wird schliesslich einem User zugeordnet. Der User kann nun über diese View den WMS-Layer ein- und ausschalten.