Agenda Kurs 1, 14.06.2007: Interoperabilität Geo Web Services und Geodatenformate Kurs 2, xx.06.2007: Servertechnologie web-basierte Datenbereitstellung mit Geoserver Kurs 3, 21.06.2007: Web-Viewer Visualisierung und Digitalisierung mit Mapbender Kurs 4, 28.06.2007: Web-Kartendienste Google Maps API und Microsoft Virtual Earth API Kurs 5, 05.07.2007: Mobile GIS-Anwendungen ESRI ArcPad und RegMobil in Verbindung mit GPS Kurs 6, 12.07.2007: Datenbanken Simple Objects for SQL und räumliche Abfragen mit PostGIS Begleitende Hausaufgabe Erstellung eines mobilen Web-Viewers für standardisierte Geodatenformate in PHP. Gruppen à 2-3 Personen implementieren: Gruppe 1: KML Punkte, Linien, Flächen + Style und Content Gruppe 2: Simple GeoRSS Punkte, Linien, Flächen + Content Gruppe 3: OGC WFS-Requests GML Punkte, Linien, Flächen Am 12.07.2007 findet eine kurze Abschlusspräsentation statt. Erforderlich: PHP-Grundkenntnisse, Apache Webserver + PHP [z.b. XAMPP www.apachefriends.org/de/xampp.html ] Ziel Sie können am Ende des Seminars GIS-Server einrichten, auf verteilte Geodatenquellen zugreifen sowie diese im Web und auf dem Handy visualisieren und abfragen. Basics Übungsstunden beginnen s.t.! In den ersten 15 Minuten werden Fortschritte und Probleme bei der Hausaufgabe geschildert (kein Powerpoint, bevorzugt mit live Beispielen). Veranstaltungsort: Die Übungsstunden finden üblicherweise im Geopool statt. Einige Kurse werden nach vorheriger Ankündigung in CIP-Pools verlegt. Auch dann ist s.t. Pflicht. Ständige Anwesenheit! Jeder Kurs (1-6) muss an einer der beiden Donnerstagsdoppelstunden besucht werden! Ausnahmen gegen Vorlage eines ärztlichen Attests oder nach Absprache mit den Kursleitern. Credit Points. Die Bewertung teilt sich wie folgt auf: 15% Vorlesung, 35% Erfüllung der Anforderungen in den Übungsstunden, 50% Hausaufgabe Anforderungen in den Übungsstunden. Die Teilnehmer werden nach Mitarbeit, Erfüllung der Ziele der Übungsstunden und Feedback über den Stand der Hausaufgabe beurteilt. Kontakt Bei Rückfragen erreichen Sie uns am besten per E-Mail info@i-locate.de oder Telefon 0941 2067727. 1
Kurs 1: Interoperabilität I) Geo Web Services 1. Starten Sie ArcCatalog & ArcMap 2. Aktivieren Sie in beiden ESRI Produkten die Data Interoperability Extension 3. Fügen Sie mittels Add new GIS Server / Add WMS Server folgende Server hinzu (Siehe Rubrik Kurs 1: Daten S. 7) 4. Fügen Sie mittels Add new Interoperability Connect einen WFS Server hinzu. OGC Web Map Service (WMS) http://www.opengeospatial.org/standards/wms Requests: GetCapabilities GetFeatureInfo GetMap GetLegend URL: URL zum Server REQUEST: "GetMap" SERVICE: "WMS" VERSION: "1.1.1" oder andere siehe Spezifikation LAYERS: anzuzeigende Layer per Komma getrennt STYLES: Darstellungsschemata je Layer per Komma getrennt BBOX: Kartenausschnitt begrenzende Koordinaten als X1,Y1,X2,Y2 SRS: Koordinatensystem z.b. Gauß-Krüger Zone 4 (EPSG:31468) oder WGS84 (EPSG:4326) FORMAT: Bildformat "image/png", "image/jpg", "image/jpeg" u.a. WIDTH: Breite in Pixel HEIGHT: Höhe in Pixel TRANSPARENT: an/aus "TRUE" oder "FALSE" BGCOLOR: Farbwert für den Hintergrund als HTML Code European Petroleum Survey Group Geodetic Parameter URL: URL zum Server Dataset (EPSG) REQUEST: "GetFeatureInfo" http://www.epsg.org/ SERVICE: "WMS" VERSION: "1.1.1" LAYERS: Layer STYLES: Darstellungsschemata BBOX: Kartenausschnitt SRS: Koordinatensystem FORMAT: Bildformat WIDTH: Breite in Pixel HEIGHT: Höhe in Pixel TRANSPARENT: an/aus BGCOLOR: Farbwert QUERY_LAYERS: Abfragelayer INFO_FORMAT: Ausgabeformat z.b. text/plain oder text/html FEATURE_COUNT: maximale Treffer X,Y: Pixelkoordinate des Abfrageobjekts Übungsaufgabe WMS 1. Ermitteln Sie ohne ArcGIS >> Request: GetCapabilities a) Wie viele Layer hat der WMS Dienst mit der URL "map=eh_altstadt? b) Welche Koordinatensysteme werden unterstützt? c) Welche Bildformate können ausgegeben werden? 2. Zeigen Sie im Browser durch direkte HTTP GET Eingabe >> Request: GetMap a) Das Universitätsgelände im Stadtplan Regensburg mit WGS84 Koordinatensystem. b) Die Jahninsel im Altstadt-Luftbild mit Gauß-Krüger Zone 4 Koordinaten. c) Alle verfügbaren Ebenen von map=eh_altstadt mit Zentrum Dom. 3. Rufen Sie die Sachdaten eines beliebigen Punktes aus 2c ab >> Request: GetFeatureInfo 2
OGC Web Feature Service http://www.opengeospatial.org/standards/wfs Requests: GetCapabilities DescribeFeatureType o FeatureType: Behälter für Features z.b. Einzelhandel o Request liefert XML mit Beschreibung (kein GML) z.b. id, boundedby, pointproperty GetFeature o Request liefert GML der angeforderten Geoobjekte Transaction (optional, WFS-T) o Anlegen, Aktualisieren und Löschen von Features LockFeature (optional, WFS-T) Übungsaufgabe WFS 1. Rufen Sie alle Geoobjekte des WFS mit der URL map=tourismus_ altstadt.map und typename=tourismus innerhalb des rechts angegebenen Bildausschnitts auf. 2. Wie viele Features (Geoobjekte) haben Sie erhalten? URL: URL zum Server REQUEST: "GetFeature" SERVICE: "WFS" VERSION: "1.0.0" oder andere siehe Spezifikation TYPENAME: anzuzeigende Container (meist Layer ) per Komma getrennt FILTER: Einschränkung gemäß OGC Filter Spezifikation z.b. Bounding Box: <Filter> <BBOX><PropertyName>name</PropertyName><Box srsname="epsg:4326"><coordinates>12.08295,49.01044133333333 12.108249999999998,49.02595866666667</coordinates></Box></BBOX> </Filter> II) Datenformate KML [Punkt] <?xml version="1.0" encoding="utf-8"?> <kml xmlns="http://earth.google.com/kml/2.1"> <Placemark> <name>simple placemark</name> <description>attached to the ground. Intelligently places itself at the height of the underlying terrain.</description> <Point> <coordinates>-122.0822035425683,37.42228990140251,0</coordinates> </Point> </Placemark> </kml> Beispiel: http://www.i-locate.de/mymaps.kml GeoRSS Simple [Punkt] <?xml version="1.0"?> <rss version="2.0" xmlns:georss="http://www.georss.org/georss"> <channel> <title>feed</title> 3
</rss> <item> </item> </channel> <title>point defined using georss:point</title> <link href="http://www.georss.org/simple.html"/> <id>point1</id> <updated>2007-03-03t18:30:02z</updated> <content>getting ready to take the mountain!</content> <georss:point>45.256-71.92</georss:point> GeoRSS gibt es alternative auch als advanced Version, dann wird innerhalb des <georss:where> GML genutzt Beispiel: http://krkinnan.members.winisp.net/samples/v5/georss/1992hurricaneandrew.xml GML [Punkt] Version 3.1.1 <?xml version="1.0" encoding="utf-8"?> <app:ndfdforecastcollection xmlns="http://www.weather.gov/forecasts/xml/ogc_services" xmlns:app="http://www.weather.gov/forecasts/xml/ogc_services" xmlns:ows="http://www.opengis.net/ows" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.weather.gov/forecasts/xml/ogc_services http://www.weather.gov/forecasts/xml/ogc_services/schema/dwgml_wfs_gmlv311.xsd"> <gml:boundedby> <gml:envelope srsname="wgs84"> <gml:lowercorner>-77.99 38.8019</gml:lowerCorner> <gml:uppercorner>-77.99 38.8019</gml:upperCorner> </gml:envelope> </gml:boundedby> <app:featuremember> <app:forecast_gmlobs> <gml:validtime> <gml:timeinstant> <gml:timeposition>2007-01-24t23:00:00</gml:timeposition> </gml:timeinstant> </gml:validtime> <gml:target> <gml:point srsname="wgs84"> <gml:pos>-77.99 38.8019</gml:pos> </gml:point> </gml:target> <gml:resultof> <app:forecastvalue> <app:maximumtemperature uom="fahrenheit">41</app:maximumtemperature> </app:forecastvalue> </gml:resultof> </app:forecast_gmlobs> </app:featuremember> </app:ndfdforecastcollection> Version 2.1.2 <?xml version="1.0" encoding="utf-8"?> <app:ndfdforecastcollection xmlns="http://www.weather.gov/forecasts/xml/ogc_services" 4
xmlns:app="http://www.weather.gov/forecasts/xml/ogc_services" xmlns:ows="http://www.opengis.net/ows" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.weather.gov/forecasts/xml/ogc_services http://www.weather.gov/forecasts/xml/ogc_services/schema/dwgml_wfs_gmlv212.xsd "> <gml:boundedby> <gml:box srsname="wgs84"> <gml:coordinates>-77.99,38.8019-77.99,38.8019</gml:coordinates> </gml:box> </gml:boundedby> <gml:featuremember> <app:forecast_gml2point> <gml:position> <gml:point srsname="wgs84"> <gml:coordinates>-77.99,38.8019</gml:coordinates> </gml:point> </gml:position> <app:validtime>2007-01-24t23:00:00</app:validtime> <app:maximumtemperature>41</app:maximumtemperature> </app:forecast_gml2point> </gml:featuremember> </app:ndfdforecastcollection> alternativ wird Point in den Versionen 1.x-2.x auch so beschrieben <gml:point srsname="http://www.opengis.net/gml/srs/epsg.xml#31468"> <gml:coord> <gml:x> 4437952.980 </gml:x> <gml:y> 5331812.550 </gml:y> </gml:coord> </gml:point> Übungsaufgabe Datenformate: 1. Erstellen Sie ein KML für Google Maps a) Erstellen Sie eine KML Datei mit mindestens 3 Punkten in Regensburg. b) Speichern Sie die Datei auf G:\WWW\kurs.kml c) Rufen Sie GoogleMaps mit folgender URL auf http://www.google.de/maps?q=http://www-nw.uniregensburg.de/~.abc12345.5.stud.uni-regensburg.de/kurs.kml 2. Erstellen Sie einen Simple GeoRSS Feed für Microsoft Virtual Earth a. Erstellen Sie die selben Punkte als GeoRSS Feed. b. Speichern Sie die Datei auf G:\WWW\georsstest.xml c. Rufen Sie das Virtual Earth SDK auf http://dev.live.com/virtualearth/sdk/ d. Wählen Sie Import Data into Shape/Add GeoRSS e. Klicken Sie auf Source und kopieren Sie den Code in eine neue Datei namens G:\WWW\ve.html f. Starten Sie http://www-nw.uni-regensburg.de/~.abc12345.5.stud.uniregensburg.de/ve.html im Internet Explorer 5
Hausaufgabe Schritt 1: Erstellen Sie eine PHP Seite mit den rudimentären Funktionen PAN und ZOOM (z.b. 3 feste Zoom-Stufen) auf Basis des OGC WMS Aufrufs für den Stadtplan Regensburg. Panning und Zooming können Sie einfach durch Veränderung der BBOX Werte erreichen map + - Schritt 2a (nur Gruppe 3): Erstellen Sie analog zum WMS-GetMap-Request den passenden WFS-Request zur Abfrage der GML Datei innerhalb der entsprechenden Bounding Box der map. Schritt 2b: die Geodatenformate. Implementieren Sie einen XML Parser und entwickeln Sie Vektorzeichenmethoden für Schritt 3 (optional): Listen Sie die Geoobjekte innerhalb des aktuellen Kartenausschnitts unterhalb des Kartenfensters auf und ermöglichen Sie durch Klick auf einen Listeneintrag die Sachdaten- bzw. Attributabfrage. 6
Kurs 1: Daten WMS Dienste Topographische Karte Amtlicher Stadtplan Regensburg Luftbilder Regensburg Einzelhandel [map=eh_altstadt] http://stadtplan.regensburg.de/cgi-bin/mapserv?map=/stadtplanmaps/rgb_topokarten_casc.map&service=wms&request=getcapabilities&version=1.1.1 http://stadtplan.regensburg.de/cgi-bin/mapserv?map=/stadtplanmaps/rgb_stadtplan_casc.map&service=wms&request=getcapabilities&version=1.1.1 http://stadtplan.regensburg.de/cgi-bin/mapserv?map=/stadtplanmaps/rgb_orthophotos_casc_ie.map&service=wms&request=getcapabilities&version=1.1.1 http://132.199.138.108/cgibin/mapserv.exe?map=c:/mapdata/regmobil/eh_altstadt.map&service=wms&request=getcapabilities&versi ON=1.1.1 WFS Dienste Tourismus POI http://132.199.138.108/cgibin/mapserv.exe?map=c:/mapdata/regmobil/tourismus_altstadt.map&service=wfs&version=1.0.0&request =GetCapabilities Hilfestellung Request=GetMap http://stadtplan.regensburg.de/cgi-bin/mapserv?map=/stadtplan-maps/rgb_stadtplan_casc.map &VERSION= &REQUEST= &SERVICE= &LAYERS= &STYLES= &SRS= &BBOX=x1,y1,x2,y2 &WIDTH= &HEIGHT= &FORMAT= &BGCOLOR= &TRANSPARENT= Request=GetFeatureInfo Komplette URL des GetMap-Requests (REQUEST= durch GetFeatureInfo ersetzen) zzgl. &QUERY_LAYERS= &INFO_FORMAT= &FEATURE_COUNT= &X= &Y= Weitere OGC WMS und WFS Server finden Sie im Internet unter http://www.skylab-mobilesystems.com/ger/wms_serverlist.html http://docs.codehaus.org/display/geos/available+wms+and+wfs+servers 7
Kurs 1: Lösungen I Übungsaufgabe WMS 1. GetCapabilities a) 1 Objekt Layer mit 8 "Unterlayern" <Layer> <Name>eh_altstadt</Name> <Name>Lebensmittel</Name> <Name>Kleidung</Name> <Name>Bücher</Name> <Name>Geschenk</Name> <Name>Handwerkkunst und -Gewerbe</Name> <Name>Haushalt</Name> <Name>Mobilität</Name> <Name>Elektronik</Name> b) WGS84, Gauß-Krüger [Dt. Hauptdreiecksnetz DHDN] Zone 4, Zone 3 und Zone 2 <SRS>epsg:4326</SRS> <SRS>epsg:31468</SRS> <SRS>epsg:31466</SRS> <SRS>epsg:31467</SRS> c) CompuServe Graphics Interchange Format GIF, Portable Network Graphics (256 und 16 Mio Farben PNG), Joint Photographic Experts Group JPEG, Wireless Application Protocol Bitmap, Tagged Image File Format TIFF 2. GetMap <GetMap> <Format>image/gif</Format> <Format>image/png</Format> <Format>image/png; mode=24bit</format> <Format>image/jpeg</Format> <Format>image/wbmp</Format> <Format>image/tiff</Format> </GetMap> a) Stadtplan mit WGS84 Koordinaten (beachte Übereinstimmung SRS und BBOX!!) http://stadtplan.regensburg.de/cgi-bin/mapserv?map=/stadtplanmaps/rgb_stadtplan_casc.map&version=1.1.1&request=getmap&service=wms&layers=stadt plan_innen&styles=&srs=epsg:4326&bbox=12.088624999999997,48.9916,12.102875000000001,4 9.0011&WIDTH=600&HEIGHT=400&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE 8
b) Luftbild mit Gauß-Krüger Koordinaten (beachte Übereinstimmung SRS und BBOX!!) http://stadtplan.regensburg.de/cgi-bin/mapserv?map=/stadtplanmaps/rgb_orthophotos_casc.map&&version=1.1.1&request=getmap&service=wms&layers=o rthophoto_altstadt2005&styles=&srs=epsg:31468&bbox=4506870,5431370.2,4507674,5432093.8& WIDTH=500&HEIGHT=450&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE c) Mehrere Layer eines WMS Dienstes http://132.199.138.108/cgibin/mapserv.exe?map=c:/mapdata/regmobil/eh_altstadt.map&version=1.1.1&request=getmap&ser VICE=WMS&LAYERS=Lebensmittel,Kleidung,B%FCcher,Geschenk,Schl%FCssel,Haushalt,Mobilit%E4t,El ektronik&styles=,,,,,,,&srs=epsg:4326&bbox=12.095875,49.0177,12.101125000000003,49.0212&w IDTH=600&HEIGHT=400&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE 3. GetFeatureInfo http://132.199.138.108/cgibin/mapserv.exe?map=c:/mapdata/regmobil/eh_altstadt.map&version=1.1.1&request=getfeatureinf o&service=wms&layers=lebensmittel,kleidung,b%fccher,geschenk,schl%fcssel,haushalt,mobilit %E4t,Elektronik&STYLES=,,,,,,,&SRS=EPSG:4326&BBOX=12.095875,49.0177,12.101125000000003,49.0 212&WIDTH=600&HEIGHT=400&FORMAT=image/png&BGCOLOR=0xffffff&TRANSPARENT=TRUE&Q UERY_LAYERS=Kleidung&INFO_FORMAT=text/html&FEATURE_COUNT=10&X=97&y=33 I Übungsaufgabe WFS 1. GetFeature http://132.199.138.108/cgibin/mapserv.exe?map=c:/mapdata/regmobil/tourismus_altstadt.map&service=wfs&version=1.0.0&r EQUEST=GetFeature&TYPENAME=tourismus&Filter=%3CFilter%3E%3CBBOX%3E%3CPropertyName %3Ename%3Ename%3C/PropertyName%3E%3CBox%20srsName=%22epsg:4326%22%3E%3Ccoordi nates%3e12.08295,49.01044133333333%2012.108249999999998,49.02595866666667%3c/coordinates %3E%3C/Box%3E%3C/BBOX%3E%3C/Filter%3E 2. Der Request liefert 7 Geoobjekte <wfs:featurecollection> </wfs:featurecollection> II Übungsaufgabe Geodatenformate 1. KML in GoogleMaps http://www.i-locate.de/mymaps.kml http://www.google.de/maps?q=http://www.i-locate.de/mymaps.kml 2. GeoRSS in Microsoft Virtual Earth (funktioniert bisher nur im Internet Explorer! ) http://www.i-locate.de/georss.xml http://www.i-locate.de/ve.html 9