Geofachdaten im Internet mit OpenLayers: Unterschied zwischen den Versionen
Zeile 21: | Zeile 21: | ||
Hierbei ist folgendes zu beachten: | Hierbei ist folgendes zu beachten: | ||
− | Der WMS-Dienst sollte die sog. Google-Projektion, | + | 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, falls nicht schon vorhanden: |
# Spherical Mercator | # Spherical Mercator | ||
Zeile 28: | Zeile 28: | ||
Tip am Rande: Bei der Gelegenheit die nicht benötigten Einträge von exotischen Projektionen entfernen! | Tip am Rande: Bei der Gelegenheit die nicht benötigten Einträge von exotischen Projektionen entfernen! | ||
− | Die Tabelle spatial_ref_sys von PostGIS mit dem Eintrag für | + | Die Tabelle spatial_ref_sys von PostGIS mit dem Eintrag für Spherical 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'); | 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'); | ||
− | Dem Mapfile sollte besondere Beachtung geschenkt werden, weil es eine häufige Fehlerursache insbesondere bei der Sachdatenabfrage ist: <br>Im WEB-Objekt darf der Eintrag "wms_feature_info_mime_type" "text/html" und der Eintrag EPSG:900913 nicht fehlen.<br> | + | Dem '''Mapfile''' sollte besondere Beachtung geschenkt werden, weil es eine häufige Fehlerursache insbesondere bei der Sachdatenabfrage ist: <br>Im WEB-Objekt darf der Eintrag "wms_feature_info_mime_type" "text/html" und der Eintrag EPSG:900913 nicht fehlen.<br> |
Beispiel: | Beispiel: | ||
WEB | WEB | ||
Zeile 62: | Zeile 62: | ||
Wenn das Mapfile aus dem kvwmap WMS-Export stammt, prüfen ob nicht irgendwelche unnötigen Einträge vorhanden sind. Diese verursachen schon mal Probleme bei der Sachdatenabfrage. | Wenn das Mapfile aus dem kvwmap WMS-Export stammt, prüfen ob nicht irgendwelche unnötigen Einträge vorhanden sind. Diese verursachen schon mal Probleme bei der Sachdatenabfrage. | ||
− | Das Template für die Sachdatenabfrage benötigt als erste Zeile unbedingt den "[http://mapserver.org/development/rfc/ms-rfc-56.html Magic String MapServer Template]"! | + | Das Template für die Sachdatenabfrage benötigt als erste Zeile unbedingt den "[http://mapserver.org/development/rfc/ms-rfc-56.html Magic String MapServer Template]"!<br> |
+ | |||
+ | Fortsetzung folgt !!! |
Version vom 8. November 2010, 11:42 Uhr
--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, falls nicht schon vorhanden:
# 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 <>
Tip am Rande: Bei der Gelegenheit die nicht benötigten Einträge von exotischen Projektionen entfernen!
Die Tabelle spatial_ref_sys von PostGIS mit dem Eintrag für Spherical 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');
Dem Mapfile sollte besondere Beachtung geschenkt werden, weil es eine häufige Fehlerursache insbesondere bei der Sachdatenabfrage ist:
Im WEB-Objekt darf der Eintrag "wms_feature_info_mime_type" "text/html" und der Eintrag EPSG:900913 nicht fehlen.
Beispiel:
WEB IMAGEPATH "/usr/local/apache2/htdocs/tmp/" IMAGEURL "/tmp/" METADATA "wms_feature_info_mime_type" "text/html" "wms_onlineresource" "http://mein-server/cgi-bin/mapserv?map=/usr/local/apache2/wms/bbinfo.map&" "wms_extent" "4404000 5886000 4491500 5953000" "ows_srs" "EPSG:4326 EPSG:25832 EPSG:25833 EPSG:2398 EPSG:2399 EPSG:31468 EPSG:31469 EPSG:900913" "ows_title" "Bürgerbüros im Landkreis Ludwigslust" "ows_abstract" "Bürgerbüros im Landkreis LWL" "ows_contactperson" "Heinz Schmidt" "ows_contactposition" "Team GIS / Geodatenmanagement" "ows_contactorganization" "Landkreis Ludwigslust" "ows_contactelectronicmailaddress" "schmidt.h@ludwigslust.de" "ows_fees" "frei nutzbar" "wms_accessconstraints" "none" END QUERYFORMAT text/html LEGENDFORMAT text/html BROWSEFORMAT text/html END
Für die Sachdatenabfrage ist es unbedingt erforderlich, dass jeder Layer - auch wenn er nicht abgefragt werden soll einen Template-Eintrag in der CLASS hat.
TEMPLATE "/usr/local/apache2/htdocs/templates/bbinfo.htm"
Wenn das Mapfile aus dem kvwmap WMS-Export stammt, prüfen ob nicht irgendwelche unnötigen Einträge vorhanden sind. Diese verursachen schon mal Probleme bei der Sachdatenabfrage.
Das Template für die Sachdatenabfrage benötigt als erste Zeile unbedingt den "Magic String MapServer Template"!
Fortsetzung folgt !!!