Geofachdaten im Internet mit OpenLayers
--Hschmidt 09:21, 8. Nov 2010 (CET)
Am Beispiel des Themas "Bürgerbüros im Landkreis Ludwigslust" wird ein einfaches Beispiel zur Präsentation von Geofachdaten im Internet aufgezeigt.
Es werden folgenden Techniken eingesetzt:
1. Datenerfassung mit kvwmap über den generischen Layereditor (GLE)
2. Datenbereitstellung als ogc-WMS (hier über den kvwmap-Server)
3. Web Map Client "Openlayers"
4. Basiskarte "OpenStreetMap (OSM)"
Zu 1. Datenerfassung:
Die Datenerfassung mit dem GLE wird als bekannt vorausgestzt.
Zu 2. Datenbereitstellung:
Zur Bereitstellung wurde ein WMS auf das Thema aufgebaut. Einfach geht das über den WMS-Export von kvwmap.
Die somit erstellte WMS-Datei und der Dienst sollte dann noch angepasst werden.
Hierbei ist folgendes zu beachten:
Der WMS-Dienst sollte die sog. Google-Projektion, spherical mercator, EPSG 900913 unterstützen um ihn in Verbindung mit OpenStreetMap Daten zu verwenden. Dazu die epsg Datei von proj4 auf dem wms-Server durch diese Zeile ergänzen:
# Spherical Mercator <900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs <>
Die Tabelle spatial_ref_sys von PostGIS mit dem Eintrag für sperical mercator ergänzen falls noch nicht vorhanden:
INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) VALUES (900913, 'EPSG', 900913, 'GEOGCS["WGS 84", DATUM["World Geodetic System 1984", SPHEROID["WGS 84", 6378137.0,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0.0,AUTHORITY["EPSG","8901"]], UNIT["degree",0.017453292519943295],AXIS["Longitude", EAST], AXIS["Latitude",NORTH],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["semi_minor", 6378137.0],PARAMETER["latitude_of_origin",0.0], PARAMETER["central_meridian", 0.0], PARAMETER["scale_factor",1.0], PARAMETER["false_easting", 0.0], PARAMETER["false_northing", 0.0],UNIT["m", 1.0], AXIS["x", EAST], AXIS["y", NORTH],AUTHORITY["EPSG","900913"]] |', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs');