open geospatial web service

57
Chaipat Nengcomma 1 Open Geospatial Web service นายชัยภัทร เนื่องคํามา Email: [email protected]

Upload: chaipat-n

Post on 18-Nov-2014

115 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Open GeoSpatial Web Service

Chaipat Nengcomma 1

Open Geospatial Web service

นายชัยภัทร เนือ่งคํามาEmail: [email protected]

Page 2: Open GeoSpatial Web Service

Chaipat Nengcomma 2

• เริ่มตนจาก OpenGIS Consortium• คศ. 2003 เปลี่ยนชื่อเปน Open Geospatial Consortium• รวมมือกนั ตกลงขอกําหนดใหระบบสารสนเทศภูมิศาสตรทํางานรวมกันได

• สงเสริมการแบงปนขอมลูและแลกเปลี่ยนขอมูลซึ่งกนัและกนั

Geospatial Web Service

Page 3: Open GeoSpatial Web Service

Chaipat Nengcomma 3

Geospatial Web Service

Server A

Server C

Server B

Server D

Advantage- Less redundant data- Authoritative- More effective data management- Data Interoperabilities

Interoperability

Service- View / Integrate- Access/ download

- OGC (Open Geospatial Consortium) : Standard

Page 4: Open GeoSpatial Web Service

Chaipat Nengcomma 4

หนวยงาน A หนวยงาน Cหนวยงาน B

หนวยงาน Dหนวยงาน F

หนวยงาน G

Roadhydrology

Cadastral

Admin BoundaryLanduseDEM/Geography

Geospatial Web Service

Page 5: Open GeoSpatial Web Service

Chaipat Nengcomma 5

Geospatial Web Service

- On line Discovery (finding)

- Evaluation (View/integrate data)

- Acess (Acquire data)

Catalog Service

WMS SLD WMC

FEWFS WCS

Page 6: Open GeoSpatial Web Service

Chaipat Nengcomma 6

Geospatial Web Service

Page 7: Open GeoSpatial Web Service

Chaipat Nengcomma 7

Geospatial Web Service

Page 8: Open GeoSpatial Web Service

Chaipat Nengcomma 8

OGC WMS

• Provides images of map data defined by a geographic / spatial component

• Provides point based query functionality• Interoperable means of map compositing

from n servers• ‘just-in-time’ approach

Page 9: Open GeoSpatial Web Service

Chaipat Nengcomma 9

Page 10: Open GeoSpatial Web Service

Chaipat Nengcomma 10

Web Browser

Viewer Client

MapServer

MapServer

MapServer

MapServer

inte

rnet

Web Map Servers

http://ceoware2.ccrs.nrcan.gc.ca/cubewerx/cubeserv/cubeserv.cgi?version=1.1.0&service=wms&request=GetMap&bbox=-72.478366,40.108703,-55.746366,50.135369&width=500&height=300&srs=EPSG:4326&layers=L7O_B743:CEOWARE2&format=image/gif&transparent=TRUE&exceptions=application/vnd.ogc.se_inimage&styles=default

http://wms.cits.rncan.gc.ca/cgi-bin/cubeservcubeserv.cgi?version=1.1.0&service=wms&request=GetMap&bbox=-72.478366,40.108703,-55.746366,50.135369&width=500&height=300&srs=EPSG:4326&layers=ROUTE_1:BNDT/NTDB-250K&format=image/gif&transparent=TRUE&exceptions=application/vnd.ogc.se_inimage&styles=default

http://ceoware2.ccrs.nrcan.gc.ca/cubewerx/cubeserv/cubeserv.cgi?version=1.1.0&service=wms&request=GetMap&srs=EPSG:4326&bbox=-80.279475,43.082972,79.281178,43.682405&width=500&height=300&layers=L7O_B743:CEOWARE2&format=image/gif&transparent=TRUE&exceptions=application/vnd.ogc.se_inimage&styles=default

http://wms.cits.rncan.gc.ca/cgi-bin/cubeserv.cgi?version=1.1.0&service=wms&request=GetMap&srs=EPSG:4326&bbox=-80.279475,43.082972,79.281178,43.682405&width=500&height=300&layers=ROUTE_1:BNDT/NTDB-250K&format=image/gif&transparent=TRUE&exceptions=application/vnd.ogc.se_inimage&styles=default

Page 11: Open GeoSpatial Web Service

Chaipat Nengcomma 11

OGC WMS

• HTTP based (GET or POST)• Currently version 1.1.1• Operations

– GetCapabilities– GetMap– GetFeatureInfo

• Operation keywords are CaSe-InSeNsItIvE• Opearation values are case-sensitive

Page 12: Open GeoSpatial Web Service

Chaipat Nengcomma 12

OGC WMS• GetCapabilities

– Provides XML of service functionality metadata, and layer metadata

– Parameters• Version (version of specification)• Service (multiple services may exist from this service, e.g.

WMS, WFS, WCS)• Request (GetCapabilities)

• E.g.• http://127.0.0.1/cgi-

bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.1.1&service=WMS&request=GetCapabilities

Page 13: Open GeoSpatial Web Service

Chaipat Nengcomma 13

OGC WMS

• Formats– transparency

• Exceptions• Choose accordingly• Layers

– Data offerings– Nesting / Grouping

Page 14: Open GeoSpatial Web Service

Chaipat Nengcomma 14

OGC:WMS• DescribeLayer

– OPTIONAL operation to provide more information about a WMS layer (WFS, etc.)

– Parameters• VERSION• SERVICE• REQUEST• LAYERS

– http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.1.1&service=WMS&request=DescribeLayer&layers=rivers

Page 15: Open GeoSpatial Web Service

Chaipat Nengcomma 15

Web Map Service (WMS)

• GetMap– Returns graphic image of data based on area

of interest, data, etc.– Image, not features, not attributes

Page 16: Open GeoSpatial Web Service

Chaipat Nengcomma 16

Web Map Service (WMS)

• Parameters– version (version of specification)– service (multiple services may exists from this

service, e.g. WMS, WFS, WCS)– request (GetMap)– format (image format to be returned)

• Get this from GetCapabilities info

Page 17: Open GeoSpatial Web Service

Chaipat Nengcomma 17

Web Map Service (WMS)

• Parameters– bbox (spatial area of interest, i.e.

minx,miny,maxx,maxy)– srs (reference system / projection of bounding

box coordinates• EPSG (http://www.epsg.org/)• Get supported SRSs from GetCapabilities

– Most widely used SRS is EPSG:4326• Lat/long geographic (WGS84)

Page 18: Open GeoSpatial Web Service

Chaipat Nengcomma 18

Web Map Service (WMS)

• Parameters– width (output image width)– height (output image height)– layers (data desired to be visualized)

• Get this from GetCapabilities info• Comma-separated list

– Eg. Layers=elevation,roads,railways,…– First list item is bottom most output layer

Page 19: Open GeoSpatial Web Service

Chaipat Nengcomma 19

Web Map Service (WMS)

• Parameters– Styles (desired portrayal of data)

• Get this from GetCapabilities info per layer• Comma-separated list

– e.g.. layers=elevation,roads,railways&styles=default,red,blue

– Style list MUST align with layer list– Empty list value for non styled layers– e.g. to style ONLY railways layer:

layers=elevation,roads,railways&styles=,,blue

Page 20: Open GeoSpatial Web Service

Chaipat Nengcomma 20

Web Map Service (WMS)

• Parameters– Styles and SLD

• SLD enables remote classification and symbolization of data• Overrides server-based styles if request from user• To use in GetMap, SLD document must exist over HTTP,

and cited in GetMap request– &sld=http://localhost/ms_ogc_workshop/sld/rivers.sld– OR &sld_body=<entire_sld_document>– (consider HTTP POST for SLD_BODY)

• More info on SLD later

Page 21: Open GeoSpatial Web Service

Chaipat Nengcomma 21

Web Map Service (WMS)

• Parameters– transparent (whether to make non-opaque data pixels

transparent• Either TRUE or FALSE• Useful for layering data from multiple remote WMS services

atop eachother for map composition• Depends on image format (JPEG is not transparent)• Depends on web browser support

– GIF transparency is supported in all browsers– PNG transparency support in newer browsers (NN7, etc.)

– bgcolor (optional background color of image)

Page 22: Open GeoSpatial Web Service

Chaipat Nengcomma 22

Web Map Service (WMS)

• Parameters– Exceptions (how to handle errors)– Can be caused by:

• Server malfunction• Invalid client syntax (missing required values, etc.)

– application/vnd.ogc.se_xml– application/vnd.ogc.se_inimage– application/vnd.ogc.se_blank

Page 23: Open GeoSpatial Web Service

Chaipat Nengcomma 23

Web Map Service (WMS)• Parameters

– Exceptions• Which one should I use?• application/vnd.ogc.se_inimage

– Useful for easily visualizing errors in your app– Can also be ugly to the end-user / audience

• application/vnd.ogc.se_blank– Returns a blank image– Difficult to recognize what type or error has occurred

• application/vnd.ogc.se_xml– Returns an XML exception document– Difficult to decode if your app is requesting an image type

– Choose accordingly

Page 24: Open GeoSpatial Web Service

Chaipat Nengcomma 24

Web Map Service (WMS)

• E.g.:• http://127.0.0.1/cgi-

bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.1.1&service=WMS&request=GetMap&srs=EPSG:4326&bbox=-180,-90,180,90&format=image/png&layers=land_shallow_topo_2048,rivers&styles=,&transparent=true&width=500&height=300

Page 25: Open GeoSpatial Web Service

Chaipat Nengcomma 25

Web Map Service (WMS)

• GetFeatureInfo– Performs point-based queries on map data– No ability for complex, expression-like queries

• This is covered the WFS specification

Page 26: Open GeoSpatial Web Service

Chaipat Nengcomma 26

Web Map Service (WMS)

• GetFeatureInfo– Parameters– <all GetMap parameters>

• request=GetFeatureInfo instead of GetMap• Pass on ALL GetMap keyword-value pairs as if performing a

GetMap request• x (pixel value in X image coordinates)• y (pixel value in Y image coordinates)• query_layers (layers to be queried)

– Can be one or multiple layers– This does not substitute passing the layers parameter

Page 27: Open GeoSpatial Web Service

Chaipat Nengcomma 27

Web Map Service (WMS)

• Parameters– info_format

• Get this from GetCapabilities info• Common formats

– HTML» difficult to parse

– GML.1» XML-based» Lacks common definition structure between vendor

implementations• See http://127.0.0.1/ms_ogc_workshop/ for

examples

Page 28: Open GeoSpatial Web Service

Chaipat Nengcomma 28

Interoperability

Server A : UMN Mapserver

Local : shapfile

Server C : Degree MapserverServer B : ArcIMS

QUERY

Page 29: Open GeoSpatial Web Service

Chaipat Nengcomma 29

Web Browser

IntegrativeWeb Server

getMapgetMap

WMS Interface WMS Interface

Request Response with single orMultiple maps as GIF/JPEG

Software A

DataData

Data Data

Data

Software B

DataData

Data Data

Data

Client

Page 30: Open GeoSpatial Web Service

Chaipat Nengcomma 30

GetMap Request Example:

http://b-maps.com/map.cgi?WMTVER=1.0.0&REQUEST=map&SRS=EPSG%3A4326&BBOX=-97.105,24.913,78.794,36.358&WIDTH=560&HEIGHT=350&LAYERS=BUILTUPA_1M%3ACubeWerx,COASTL_1M%3ACubeWerx,POLBNDL_1M%3ACubeWerx&STYLES=0XFF8080,0X101040,BLACK&FORMAT=PNG&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&EXCEPTIONS=INIMAGE&QUALITY=MEDIUM

Page 31: Open GeoSpatial Web Service

Chaipat Nengcomma 31

http://b-maps.com/map.cgi?WMTVER=1.0.0&REQUEST=map&SRS=EPSG%3A4326&BBOX=-97.105,24.913,78.794,36.358&WIDTH=560&HEIGHT=350&LAYERS=AVHRR-09-27%3AMIT-mbay,BUILTUPA_1M%3ACubeWerx,COASTL_1M%3ACubeWerx,POLBNDL_1M%3ACubeWerx&STYLES= default,0XFF8080,0X101040,BLACK&FORMAT=PNG&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE&QUALITY=MEDIUM

GetMap Request Example:p2

Page 32: Open GeoSpatial Web Service

Slide 31

p2 pk, 1/6/2550

Page 33: Open GeoSpatial Web Service

Chaipat Nengcomma 32

NASA OnEarthhttp://wms.jpl.nasa.gov/wms.cgi

Page 34: Open GeoSpatial Web Service

Chaipat Nengcomma 33

European ICEDShttp://iceds.ge.ucl.ac.uk/cgi-bin/icedswms

Page 35: Open GeoSpatial Web Service

Chaipat Nengcomma 34

การทดสอบเรียกขอมูลการทดสอบเรียกขอมูล Raster Data Raster Data ผานระบบผานระบบ InternetInternet1.1 Custom Weather Map Server

URL: http://206.14.214.198/image?REQUEST=GetCapabilities

1.2 ICEDS Server

URL: http://iceds.ge.ucl.ac.uk/cgi-bin/icedswms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities

1.3 Intergraph World Map

URL: http://maps1.intergraph.com/wms/world/request.asp? service=WMS&request=GetCapabilities

1.4 Demis World Map

URL: http://www2.demis.nl/mapserver/Request.asp?REQUEST=Capabilities

1.5 NASA Server

URL: http://wms.jpl.nasa.gov/wms.cgi?REQUEST=Capabilities

Page 36: Open GeoSpatial Web Service

Chaipat Nengcomma 35

การทดสอบเรียกขอมูลการทดสอบเรียกขอมูล Raster Data Raster Data ผานระบบผานระบบ InternetInternet1.6 The GLOBE Program Visualization Server

URL: http://viz.globe.gov/viz-bin/wmt.cgi?REQUEST=Capabilities

1.7 ESRIN World Map Server

URL: http://mapserv2.esrin.esa.it/cubestor/cubeserv/cubeserv.cgi? REQUEST=Capabilities

1.8 Thailand Department of Land

URL:http://publicland.dol.go.th/cgi-bin/publicland.exe?Service=WMS&version=1.1.1&request=getcapabilities

1.9 AIT TSUNAMI Map Server

URL:http://www.mapsherpa.com/cgi-bin/wms_iodra?SERVICE=wms&VERSION=1.1.1&REQUEST=getcapabilities

1.10 Thailand Department of Water Resource

URL:URL:="http://gis.dwr.go.th:8080/wmsconnector/com.esri.wms.Esrimap?servicename=dwrgis&service=WMS&request=GetCapabilities&version=1.1.1"

Page 37: Open GeoSpatial Web Service

Chaipat Nengcomma 36

OGC:SLD

• “Add-on” specification to OGC:WMS– “SLD-enabled WMS”

• Enables custom styling– Data at the server does not have to change– Client sends SLD XML document for

symbolization, etc.

Page 38: Open GeoSpatial Web Service

Chaipat Nengcomma 37

OGC:SLD

• Additional OGC:WMS operations with OGC:SLD:– GetLegendGraphic– GetStyles

Page 39: Open GeoSpatial Web Service

Chaipat Nengcomma 38

OGC:SLD

• GetLegendGraphic• Dynamic legend icon for a given layer• Parameters

– VERSION– SERVICE– REQUEST– FORMAT– LAYER

Page 40: Open GeoSpatial Web Service

Chaipat Nengcomma 39

OGC:SLD

• GetStyles• Returns OGC:SLD for a given layer• Parameters

– VERSION– SERVICE– REQUEST– LAYERS

Page 41: Open GeoSpatial Web Service

Chaipat Nengcomma 40

OGC:SLD

• Enabling in MapServer• Not much, really

– MapServer code (CGI) basically exposes and converts CLASS objects to SLD constructs

– Also via PHP MapScript to mapObj or layerObj

– See here for SLD examples:• http://127.0.0.1/ms_ogc_workshop/index.html

Page 42: Open GeoSpatial Web Service

Chaipat Nengcomma 41

Styled Layer Descriptor (SLD)• Specification for an XML file to apply styles based on

selection criteria against a feature service (typically WFS)

• Style sheet for symbolizing vector or raster data• Not an interface specification

Page 43: Open GeoSpatial Web Service

Chaipat Nengcomma 42

Web Browser

WMS Client

Web Feature Server

SLD Doc

Web Map

Server

GetMap

Map Features

GetFeature

FetchReference XML

Using an SLD

references Add to WMS “get” request:SLD=reference_SLD_URL

Page 44: Open GeoSpatial Web Service

Chaipat Nengcomma 43

OGC:WFS

• Feature level access to spatial data (vectors)

• Rich query interface • Returns GML• Transactional capability• Security considerations for OGC:WFS-T

– MapServer supports basic WFS• No transactions

Page 45: Open GeoSpatial Web Service

Chaipat Nengcomma 44

OGC:WFS

• Operations– GetCapabilities– DescribeFeatureType– GetFeature

Page 46: Open GeoSpatial Web Service

Chaipat Nengcomma 45

OGC:WFS• GetCapabilities• Same idea as OGC:WMS GetCapabilities• Parameters

– VERSION– SERVICE– REQUEST

• http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.0.0&service=WFS&request=GetCapabilities

Page 47: Open GeoSpatial Web Service

Chaipat Nengcomma 46

OGC:WFS• DescribeFeatureType• Provides an outline of the structure of a feature type

(fields, etc.)• Similar to SQL describe <table> command• Parameters

• VERSION• SERVICE• REQUEST• TYPENAME

• http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.0.0&service=WFS&request=DescribeFeatureType&typename=rivers

Page 48: Open GeoSpatial Web Service

Chaipat Nengcomma 47

OGC:WFS• GetFeature• Gimme data!• Parameters

– VERSION– SERVICE– REQUEST– TYPENAME– FILTER (optional)– BBOX (can also be done through FILTER)

– E.g.: see index.html

Page 49: Open GeoSpatial Web Service

Chaipat Nengcomma 48

OGC:Filter

• “Add on” specification to OGC:WFS• Custom XML query language• SQL in XML, almost• Spatial and aspatial query capabilities

– Logical– Spatial– Comparative

Page 50: Open GeoSpatial Web Service

Chaipat Nengcomma 49

OGC:Filter

• E.g.:• SQL:

– select * from roads where roadtype = 1• OGC:Filter:<Filter>

<PropertyIsEqualTo><PropertyName>roadtype</PropertyName><Literal>1</Literal>

</PropertyIsEqualTo></Filter>

Page 51: Open GeoSpatial Web Service

Chaipat Nengcomma 50

OGC:Filter

• Enabling in MapServer• Not much, really

– Handled by MapServer OGC:WFS code– E.g.:

• http://127.0.0.1/ms_ogc_workshop/filter/index.html

Page 52: Open GeoSpatial Web Service

Chaipat Nengcomma 51

OGC:WCS

• The raster equivalent to OGC:WFS• Provides “real” raster data

– DEM– GeoTIFF

Page 53: Open GeoSpatial Web Service

Chaipat Nengcomma 52

OGC:WCS

• Operations– GetCapabilities– DescribeCoverage– GetCoverage

Page 54: Open GeoSpatial Web Service

Chaipat Nengcomma 53

OGC:WCS• GetCapabilities• Same idea as OGC:WMS GetCapabilities• Parameters

– VERSION– SERVICE– REQUEST

• http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.0.0&service=WCS&request=GetCapabilities

Page 55: Open GeoSpatial Web Service

Chaipat Nengcomma 54

OGC:WCS• DescribeCoverage• Provides an outline of the structure of a coverage

– bands– resolution

• Parameters• VERSION• SERVICE• REQUEST• COVERAGE

• http://127.0.0.1/cgi-bin/mapserv.exe?map=/ms4w/apps/ms_ogc_workshop/service/config.map&version=1.0.0&service=WCS&request=DescribeCoverage&coverage=toronto

Page 56: Open GeoSpatial Web Service

Chaipat Nengcomma 55

OGC:WCS

• GetCoverage• Gimme data!• Parameters

– VERSION– SERVICE– REQUEST– COVERAGE– CRS– BBOX

Page 57: Open GeoSpatial Web Service

Chaipat Nengcomma 56

OGC:WMC

• Web Map Context Documents• Saves Web Mapping Application State

– remote WMS layer pointers• Like “project” files in common desktop GIS• XML-based