280 likes | 423 Views
GIS and the Internet. Web Mapping Services & Interoperability. Interoperability: the ability of two or more systems or components to exchange information and to use the information that has been exchanged. - IEEE. Standards-based GIS.
E N D
GIS and the Internet Web Mapping Services & Interoperability
Interoperability:the ability of two or more systems or components to exchange information and to use the information that has been exchanged. - IEEE
Standards-based GIS • Until recently everyone is developing in their own little world (metadata => data => applications) • From functionality to interoperability • Internet is driving these changes: no net, then little reason to interoperate • Being “open” is a strong selling point
OpenGIS Consortium OGC is a collection of vendors, universities and government agencies interested bringing GIS to the mainstream through the development of open, interoperable systems. • No actual power, can only make recommendations • API specifications: GML, WMS, web context, WFS, WCS • Conformance testing and certification • University of Minnesota is a member
Consider the Scenario... • major hurricane bearing down on U.S. cost • as GIS coordinator for a rural county you are required to put together a web site for citizens with things like NOAA GOES imagery, NWS NEXRAD mosaics and FEMA flood zones • you don’t have those data, what do you do?
…Consider the Scenario • tell your boss, “Sorry, can’t do that” • get on the phone/Internet and try to download the data • make use of NWS/NOAA/FEMA services to integrate their data into your application • enter the OGC Web Mapping Service specification
Traditional Architecture Application 1 Resource 1 Application 2 Resource 2 Application 3 Resource 3
Service-based Architecture Application 1 Resource 1 Service 1 Application 2 Resource 2 Service 2 Application 3 Resource 3 Service 3
A Case for Services • abstraction of implementation • common access method (e.g. SOAP) • centralized security management • consistency of integration
A quick word about XML Steve Lime Application Development Manager 500 Lafayette Road St. Paul, MN 55155 651-259-5439, steve.lime@dnr.state.mn.us <contact> <name> <first_name>Steve</first_name> <last_name>Lime</last_name> </name> <title>Application Development Manager</title> <address>500 Lafayette Road</address> <city>St. Paul</city> <state>MN</state> <zipcode>55155</zipcode> <phone_number>651-259-5439</phone_number> <email>steve.lime@dnr.state.mn.us</email> </contact> • text based format • “tags” are used to markup unstructured content • document structure “rules” are defined using schema or document type definitions (DTDs)
Web Map Service (WMS) • enables simple map creation and feature retrieval • getCapabilties, getMap, getFeatureInfo • cascading map servers • equivalent to MapServer mode=map or mode=query • current specification version is 1.3
WMS - getCapabilties • allows the server to advertise what it can do: • available layers • supported output projections • supported output formats • scale hints • extent of data • XML format (example)
DNR Photo Server (getMap) WMS - getMap • allows the retrieval of a map from a web server • user supplies bounding box, image size, format, styling, error handling, etc… • server responds with an “image”, typically a web-ready format like GIF, PNG or KML
WMS – getFeatureInfo • allows the retrieval of simple feature attributes • user supplies an x,y coordinate pair and a layer of interest • server responds with attribute information in HTML, GML or arbitrary ASCII format
WMS Limitations • all you get is a picture, not the data • somewhat limited control over how the data is “styled” (see OGC SLD and Filter specs) • particularly limiting with regards to labeling • supports only a small (but ever increasing) portion of functionality typically supported by a vendor that said…
MapServer as WMS Server • must compile software with Proj.4 • define METADATA block with the WEB object and any LAYERs
Map File Block WEB … METADATA "wms_title" "MN DNR Orthorectified Fall CIR Photography" "wms_onlineresource" "http://maps.dnr.state.mn.us/cgi-bin/mapserv?map=DELI_WMS" "wms_srs" "EPSG:26915" END END LAYER NAME "cir“ … METADATA "wms_title" "MN DNR Orthorectified Fall CIR Photography" "wms_srs" "EPSG:26915" END END
MapServer as WMS Client • compile with PROJ.4, GDAL and libcurl • define METADATA block within LAYER • set LAYER CONNECTIONTYPE and CONNECTION properties
Map File Block LAYER NAME "prov_bound" TYPE RASTER STATUS ON CONNECTION "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?" CONNECTIONTYPE WMS METADATA "wms_srs" "EPSG:42304 EPSG:42101 EPSG:4269 EPSG:4326 EPSG:42304" "wms_name" "prov_bound" "wms_server_version" "1.1.0" "wms_format" "image/gif" END END
Web Feature Service (WFS) • share vector data • data returned as GML • supports advanced query using OGC Filter specification • enables transactional (insert, update, delete) access to data resources • MapServer supports: • WFS server 1.0, GML2 & GML3 • simple WFS client (via LAYERs) • read-only access (non-transactional WFS) • Current specification version is 1.1
WFS - getCapabilities • allows the server to advertise what it can do: • available layers or types • supported output projections • supported output formats • extent of data • supported query operators • XML format (example)
WFS - describeFeatureType • returns detailed information about a layer or group of layers • data elements • types and value domains • support for complex structures (e.g. address) • format is an XML Schema (example)
WFS - getFeature • allows spatial queries, attribute queries or both against a layer • response is typically a GML instance document that conforms to the describeFeatureType response of the server • queries conform to the GML filter encoding standard • spatial, logical, and comparison operators • equates logically to the various MapServer query modes
WFS - Example Filters <ogc:Filter> <ogc:PropertyIsGreaterThan> <ogc:PropertyName>AREA</ogc:PropertyName> <ogc:Literal>1000.00</ogc:Literal> </ogc:PropertyIsGreaterThan> </ogc:Filter> <ogc:Filter> <ogc:BBOX> <ogc:PropertyName>the_geom</ogc:PropertyName> <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326"> <gml:coordinates> -90,40 10.5,60 </gml:coordinates> </gml:Box> </ogc:BBOX> </ogc:Filter>
Transactional WFS • WFS-T, what WFS was really created for • additional modes to lock features (getFeatureWithLock & lockFeature) • supports INSERT, UPDATE and DELETE operations via transaction request • relatively few commercial or open source solutions (MapServer is NOT one of them, see GeoServer instead)
Web Coverage Service (WCS) • Share raster data • Data returned using common formats such as GeoTIFF • MapServer Supports: • WCS server 1.0 • Ad-hoc access to tiled data by any attribute (e.g. cloud cover, date/time) • Raster re-projection and re-sampling • Current specification version is 1.1
Suggested Readings • W3C - Intro to XML • OGC Specification Documents: • Geographic Markup Language (GML) • Web Map Service (WMS) • Web Feature Service (WFS) • Styled Layer Descriptor (SLD) • Filters • Web Coverage Service (WCS)