Open GIS
OGC Datenquellen

OGC konforme Dienste oder Datenbanken können in Iwan als Datenquelle definiert werden.

Diese Datenquellen werden von Iwan vollständig kaskadiert. D.H. alle Zugriffsverfahren, z.B. Selektionen, werden wie bei jeder anderen Datenquelle behandelt. WMS GetFeatureInfo Informationen unterscheiden sich dabei nicht von dem Zugriff bspw. auf eine Shapedatei.

Für den Zugriff auf die Sublayer einer Diensteebene kann mittels des Layer-Objektes zugegriffen werden. Diese gilt auch für Legenden.

Dazu gehört der Zugriff auf Datenbanken gemäß der SFS Spezifikation und die Einbindung von HTTP/XML basierten Daten wie WMS und WFS.

OGC SFS Datenbanken

Für die Einbindung OGC konformer Datenbankquellen steht in der aktuellen Version die Anbindung an Datenbanken gemäß der Simple-Feature (SFS) der OGC zur Verfügung.

Im Besonderen sei auf die Einbindung von PostgreSQL/PostGIS Ebenen hingewiesen.

Der Zugriff auf ORACLE SDO und ERSI SDE ist natürlich ebenso implementiert, aber jeweils unter Verwendung der herstellerspezifischen API's und SQL Syntax. 

OGC Dienste

Der Zugriff auf einen Kartendienst erfolgt i.d.R. über das HTTP Protokoll unter Verwendung von XML Dialekten für die Daten- und Aktionsbeschreibung.

Ab der Version 3.4.4.x steht der Zugriff auf WMS 1.0.x oder 1.1.x Dienste zur Verfügung und ab Version 4.0.0.30 eine Unterstützung von WFS 1.0.0 Diensten.

Der Zugriff auf WMS Dienste ist in unseren Clientprodukten, wie z.B. cardo, schon seit geraumer Zeit implementiert.

Neu ist die Iwan interne Unterstüzung dieser Dienste.

Die Anzahl und vor allem die Qualität der zwischenzeitlich im Netz angebotenen Dienste gab für uns den Anlass eine weitere Untersützung zu bieten.

Für Dienste gibt es den Ebenentyp AddTheGenericLayer. Dieser bietet Zugriff auf WMS oder WFS Dienste.

WFS Datenquellen
Nutzen von WFS Diensten

Ein WFS Dienst wird in Iwan mit dem neuen Layertyp "AddTheGenericLayer" eingebunden.

Folgende Anforderungen wurden berücksichtigt:

  • Unterstüzung von Proxyserver und Proxy Authenthifizierung,
  • Unterstützung der Server Authentifizierung,
  • volle Auswertung der GetCapabilities,
  • Sitzungsstatus (je nach Konfiguration wird pro Iwan Sitzung der Capabilities Request neu ausgewertet, damit werden z.B. SessionIds der Server berücksichtigt),
  • Cookie Behandlung für den Server,
  • Auswertung der SRID's und BBoxes der vom Dienst publizierten Ebenen unter Verwendung von theSrid, falls diese unbekannt oder ungültig ist

Beispiel einer Diensteeinbindung:

Go;
ret=ExecOld("AddTheGenericLayer",
	theName:"WFS",
	layerTypeName:"WFSLAYER",
	theMaxScale:"",
	theMinScale:"",
	wfsUrl:"http://www.landesvermessung.sachsen.de/.../wfsservice",
	wfsVersion:"1.0.0",
	theSrid:"EPSG:31469",
	wfsSessionState:false,
	wfsLayers:"",
	httpSrvLogin:"benutzername,kennwort",
	httpProxyLogin:"benutzername,kennwort",
	httpProxyServer:"proxy1:8080");
End;
WMS Datenquellen
Nutzen von WMS Diensten

Ein WMS Dienst wird in Iwan mit dem neuen Layertyp "AddTheGenericLayer" eingebunden.

Folgende Anforderungen wurden berücksichtigt:

  • Unterstüzung von Proxyserver und Proxy Authenthifizierung,
  • Unterstützung der Server Authentifizierung,
  • Unterstützung nicht transparenter Formate (z.B. JPEG),
  • Untersützung von Farbbereichen für die Transparenz,
  • volle Auswertung der GetCapabilities,
  • volle Auswertung der Scalehints,
  • Sitzungsstatus (je nach Konfiguration wird pro Iwan Sitzung der Capabilities Request neu ausgewertet, damit werden z.B. SessionIds der Server berücksichtigt),
  • Cookie Behandlung für den Server ,
  • Auswertung der SRID's und BBoxes der vom Dienst publizierten Ebenen,
  • optional ein sitzungsbezogener Bilder-Cache um die Serverlast zu minimieren,
  • Multilayer Datenquellen werden transparent in die Projektverwaltung integriert

Beispiel einer Diensteeinbindung:

Go;
ret=ExecOld("AddTheGenericLayer",
	theName:"WMS1",
	layerTypeName:"WMSLAYER",
	theMaxScale:"",
	theMinScale:"",
	wmsUrl:"http://www.landesvermessung.sachsen.de/.../wmsservice",
	wmsVersion:"1.1.0",
	theSrid:"EPSG:31469",
	wmsTransparentColor:"magenta",
	wmsTransparentColorRange:5,
	wmsFileCache:true,
	wmsImageOrder:"image/png|image/jpeg",
	wmsSessionState:false,
	wmsLayers:"",
	httpSrvLogin:"benutzername,kennwort",
	httpProxyLogin:"benutzername,kennwort",
	httpProxyServer:"proxy1:8080");
End;