5.WFS

49
1 Web Feature Service Modulo: Cartografía en la web Daniela Ballari [email protected] Maestría en Geomática Universidad de Cuenca

Transcript of 5.WFS

Page 1: 5.WFS

1

Web Feature Service

Modulo: Cartografía en la web

Daniela [email protected]

Maestría en Geomática Universidad de Cuenca

Page 2: 5.WFS

2

Temario

1 ¿Qué es un WFS?

2 ¿Qué puede hacer un WFS?

3 ¿Cómo funciona?

4 Operaciones (GetCapabilities, DescribeFeatureType, GetFeature)

5 Prácticas con MapServer

6 Instalación y prácticas con Geoserver

7 Filter Encoding

Page 3: 5.WFS

3

Planteo del problemaAnalogía con Infraestructura de TransporteDefinición de IDENaturaleza de una IDE

¿Qué es un WFS?¿Qué puede hacer un WFS?

¿Cómo funciona?

Page 4: 5.WFS

4

WMS superpone mapas de múltiples servicios de mapas en internet.

WFS consulta y recupera de datos vectoriales desde múltiples servicios remotos.

¿Qué es un WFS?

Page 5: 5.WFS

5

GetCapabilitiesDescribe capacidades, tipos de «features» y operaciones que soporta en cada tipo de «feature».

GetFeature Devuelve el «feature» en formato GML u otro.

Transaction Crear, Actualizar y Borrar features.

LockFeature Petición de bloqueo sobre una o más features mientras dure la transacción

DescribeFeatureType Describe estructura del «feature» pedido.

¿Qué puede hacer un WFS? – 5 Operaciones

Page 6: 5.WFS

6

Secuencia de Peticiones

Page 7: 5.WFS

7

metadatos del servicioDatos en GMLActualización de un featureBorrado de un feature

¿Cómo funciona un Web Feature Service?

Servidor WFS

Petición

Cliente WFSRespuesta

Get

Post

Page 8: 5.WFS

8

Herramienta para método Post

Geoserverintalar

Puerto 8085

Page 9: 5.WFS

9

Planteo del problemaAnalogía con Infraestructura de TransporteDefinición de IDENaturaleza de una IDE

GetCapabilities

Page 10: 5.WFS

10

GetCapabilities

http://host?service=WFS&version=1.0.0&request=GetCapabilities

<GetCapabilities  service="WFS"  xmlns="http://www.opengis.net/wfs"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"/>

Get

Post

Page 11: 5.WFS

11

Actividad

Realiza una petición WFS GetCapabilities Get y Post utilizando el servidor de geoserver:

http://localhost:8085/geoserver/wfs?

¿Que tipo de información contiene el documento xml?

Page 12: 5.WFS

12

WFS_GetCapabilities

Service IdentificationAnd provider

Operation Metadata

FeatureTypeList

Metadatos del servicio Y del proveedor

Peticiones aceptadas por el WFS

Listado de “capas” y sus metadatos

FilterCapabilities

Operadores aceptados para realizar filtros

GetCapabilities: Respuesta

Page 13: 5.WFS

13

Planteo del problemaAnalogía con Infraestructura de TransporteDefinición de IDENaturaleza de una IDE

DescribeFeatureType

Page 14: 5.WFS

14

Elige un Feature topp:states

DescribeFeatureType

Queremos más información sobre este FeatureType

Page 15: 5.WFS

15

Describe la estructura del feature que ofrece el wfs: sus campos, ocurrencia, tipo de elemento

(string, float, coordenadas)

Esquema de xml: xsd

• Necesidad: con petición getFeature se generará un documento gml que deberá validarse con el esquema de la petición DescribeFeatureType

DescribeFeatureType

Page 16: 5.WFS

16

REQUEST DescribeFeatureType

VERSION 1.0.0SERVICE WFSTYPENAME FeatureType1, FeatureType2,…

DescribeFeatureType

Page 17: 5.WFS

17

DescribeFeatureType

http://localhost:8085/geoserver/wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=topp:states

<DescribeFeatureType  version="1.1.0"  service="WFS"  xmlns="http://www.opengis.net/wfs"  xmlns:topp="http://www.openplans.org/topp"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">      <TypeName>topp:states</TypeName></DescribeFeatureType>

Get

Post

Page 18: 5.WFS

18

DescribeFeatureType

Page 19: 5.WFS

19

Planteo del problemaAnalogía con Infraestructura de TransporteDefinición de IDENaturaleza de una IDE

GetFeature

Page 20: 5.WFS

20

REQUEST GetFeature

VERSION 1.1.0

SERVICE WFS

TYPENAME FeatureType1, FeatureType2,…

PROPERTYNAME Elementos del esquema xsd (DescribeFeatureType)Si no se completa devolverá todas las propiedades

FEATUREREVISION Para features que tienen distintas versiones

MAXFEATURE Número máximo de features que el WFS devolveráSi no se completa devolverá todos los features

FEATUREID Consulta de features por su identificador

FILTER Según Filter-Encoding Specification

BBOX Petición por medio de coordenadas extremas

GetFeature

Page 21: 5.WFS

21

GetFeature

<wfs:GetFeature service="WFS" version="1.1.0"  xmlns:topp="http://www.openplans.org/topp"  xmlns:wfs="http://www.opengis.net/wfs"  xmlns:ogc="http://www.opengis.net/ogc"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.opengis.net/wfs                      http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">  <wfs:Query typeName="topp:states">    <ogc:Filter>       <ogc:FeatureId fid="states.3"/>    </ogc:Filter>    </wfs:Query></wfs:GetFeature>

Post

Page 22: 5.WFS

22

http://localhost:8085/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:states&maxFeatures=50&outputFormat=SHAPE-ZIP

GetFeature

Get

Page 23: 5.WFS

23

Qgis

1. Abre el GML descargado y el shapefile con Qgis2. Carga una capa WFS en Qgis

Page 24: 5.WFS

24

MapServer como WFS

Page 25: 5.WFS

25

MapServer como WFS

WEBMETADATA "wfs_title" "....." "wfs_onlineresource" ".... ""wfs_srs" " … "End End

Page 26: 5.WFS

26

MapServer como WFS

LAYER ... DUMP TRUEMETADATA

"ows_title" " … " "ows_srs" " … "

"ows_enable_request" "*"" "gml_include_items" "all" ## Optional "gml_featureid" "ID" ## REQUIREDENDEND

Page 27: 5.WFS

27

Planteo del problemaAnalogía con Infraestructura de TransporteDefinición de IDENaturaleza de una IDE

Prácticas con Geoserver

Page 28: 5.WFS

28

Conceptos

Workspace = spacenames Store=datastore layer=featuretype Layergroup

Page 29: 5.WFS

29

Interface de administración

http://localhost:8085/geoserver

Login: admin – geoserver

Contact information

Page 30: 5.WFS

30

Workspace

Data workspace add new workspace

Page 31: 5.WFS

31

Store = Shapefile

Data store add new store shapefile

Page 32: 5.WFS

32

Store = Shapefile

Page 33: 5.WFS

33

Incluir:

SRS = EPSG:4326

SRS handling = Force declared

Bounding Boxes = click Compute from data and Compute from native bounds

Preview layers

Store = Shapefile

Page 34: 5.WFS

34

Datos Raster: Geotiff

Page 35: 5.WFS

35

Múltiples layers desde directorio

Page 36: 5.WFS

36

Layer group

Page 37: 5.WFS

37

Postgis

Page 38: 5.WFS

38

Filter Encoding

Page 39: 5.WFS

39

Una expresión de filtrado “filter expression” es una construcción usada para restringir los valores de propiedades de un tipo de objeto

Ej: toda la población mayor de 65 años La provincia cuyo nombre es “Azuay” Todos los ríos contenidos en la provincia de Azuay.

¿Qué es?

Page 40: 5.WFS

40

Para ser usado por cualquier servicio OGC. WFS, Gazetteer, Web Registry Service, Web Coverage

Service, SLD

Los filtros se construyen en xml

OGC filter encoding

Page 41: 5.WFS

41

Filtros

Operadores Espaciales

Operadores de Comparación

Operadores Logicos

ID

Tipos de operadores

Page 42: 5.WFS

42

Filter encoding: id

<wfs:GetFeature service="WFS" version="1.1.0" xmlns:topp="http://www.openplans.org/topp" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"> <wfs:Query typeName="topp:states"> <ogc:Filter> <ogc:FeatureId fid="states.3"/> </ogc:Filter> </wfs:Query></wfs:GetFeature>

WFS_getFeature-1.1.xml

Page 43: 5.WFS

43

Dentro de lascapacidades del WFS sedefinen los operadores yfunciones soportadas

Operadores Espaciales

Filter encoding

Page 44: 5.WFS

44

<wfs:Query typeName="topp:states">    <wfs:PropertyName>topp:STATE_NAME</wfs:PropertyName>    <wfs:PropertyName>topp:PERSONS</wfs:PropertyName>    <ogc:Filter>      <ogc:BBOX>        <ogc:PropertyName>the_geom</ogc:PropertyName>        <gml:Envelope srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">           <gml:lowerCorner>-75.102613 40.212597</gml:lowerCorner>           <gml:upperCorner>-72.361859 41.512517</gml:upperCorner>        </gml:Envelope>      </ogc:BBOX>   </ogc:Filter>  </wfs:Query>

Operadores Espaciales

Filter encoding: BBOX WFS_getFeatureBBOX-1.1.xml

Page 45: 5.WFS

45

Filter encoding

PropertyIsEqualTo (=)PropertyIsNotEqualTo ( != (<>))PropertyIsLessThan (<)PropertyIsGreaterThan (>)PropertyIsLessThanOrEqualTo (<=)PropertyIsGreaterThanOrEqualTo (>=)PropertyIsLike: operador de comparación de cadenas de caracteres.PropertyIsNull: Operador que chequea para ver si el valor de su contenido es nulo.PropertyIsBetween: Los valores más altos o más bajos están incluidos.

Operadores de Comparación

Page 46: 5.WFS

46

Filter Encoding: PropertyIsEqualTo

<wfs:Query typeName="topp:states"> <ogc:Filter> <PropertyIsEqualTo> <PropertyName>STATE_NAME</PropertyName> <Literal>Delaware</Literal> </PropertyIsEqualTo> </ogc:Filter> </wfs:Query>

WFS_getFeature-1.1.xml

Page 47: 5.WFS

47

Filter Encoding

Para combinar una o más expresiones de condición.

Combinar expresiones lógicas, espaciales o escalares

AND, OR, NOT

En el archivo de capacidades:

Operadores Logicos

Page 48: 5.WFS

48

<ogc:Filter> <And> <PropertyIsGreaterThan>

<PropertyName>topp:LAND_KM</PropertyName><Literal>5000</Literal>

</PropertyIsGreaterThan> <PropertyIsLessThan> <PropertyName>PERSONS</PropertyName> <Literal>700000</Literal> </PropertyIsLessThan> </And> </ogc:Filter>

Filter Encoding: and

Page 49: 5.WFS

49

? ?? ? ??