WFS-T Request

En esta entrada vamos a explicar cómo se pueden construir unas peticiones WFS-T básicas para añadir, editar y eliminar puntos de una capa WFS en Geoserver.

Antes de nada, una capa WFS-T no es más que una capa WFS Transactional. Qué quiere decir esto, pues bien, se trata de una capa vectorial sobre la que podemos manejar transacciones para editar su contenido. Aclarado ésto las operaciones básicas que podemos realizar son la inserción, actualización y borrado de elementos de la capa.

Para realizar una inserción la petición que necesitamos es:

<wfs:Transaction
version="1.1.0" 
service="WFS" 
xmlns:wfs="http://www.opengis.net/wfs" xmlns:workspace="workspace_url">
  <wfs:Insert>
    <namespace:featureType xmlns:feature="url_wfs_server">
      <namespace:geometry_name>
        <gml:feature_type xmlns:gml="http://www.opengis.net/gml" srsName="srs"> 
          "Feature gml specification"
        </gml:feature_type>
      </namespace:geometry_name>
    </namespace:featureType>
  </wfs:Insert>
</wfs:Transaction>

Un ejemplo de petición de inserción de puntos, sería:

<wfs:Transaction
version="1.1.0"
service="WFS" 
xmlns:wfs="http://www.opengis.net/wfs" xmlns:Test="http://test">
  <wfs:Insert>
    <test:prueba xmlns:feature="http://localhost/geoserver/rest/wfs"> 
      <test:the_geom> 
        <gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326"> 
          <gml:pos>-4.83123779296875 36.98500309285596</gml:pos> 
        </gml:Point> 
      </test:the_geom> 
    </test:prueba> 
  </wfs:Insert> 
</wfs:Transaction>

Para realizar una actualización de la posición del elemento, necesitamos lanzar la petición:

<wfs:Transaction 
version="1.1.0" 
service="WFS" 
xmlns:wfs="http://www.opengis.net/wfs"> 
  <wfs:Update typeName="namespace:featureType" xmlns:feature="http://opengeo.org"> 
    <wfs:Property> 
      <wfs:Name>the_geom</wfs:Name> 
      <wfs:Value> 
        <gml:feature_type xmlns:gml="http://www.opengis.net/gml" srsName="srs"> 
          <gml:pos>-4.773559570312499 37.44433544620035</gml:pos> 
        </gml:feature_type> 
      </wfs:Value> 
    </wfs:Property> 
    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> 
      <ogc:FeatureId fid="value_id"/> 
    </ogc:Filter> 
  </wfs:Update> 
</wfs:Transaction>

Un ejemplo de petición de actualización de puntos, sería:

<wfs:Transaction 
version="1.1.0" 
service="WFS" 
xmlns:wfs="http://www.opengis.net/wfs"> 
  <wfs:Update typeName="feature:aeropuertos" xmlns:feature="http://opengeo.org"> 
    <wfs:Property> 
      <wfs:Name>the_geom</wfs:Name> 
      <wfs:Value> 
        <gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326"> 
          <gml:pos>-4.773559570312499 37.44433544620035</gml:pos> 
        </gml:Point> 
      </wfs:Value> 
    </wfs:Property> 
    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> 
      <ogc:FeatureId fid="aeropuertos.71"/> 
    </ogc:Filter> 
  </wfs:Update> 
</wfs:Transaction>

Para realizar un borrado de un elemento, debemos lanzar la petición:

<wfs:Transaction 
version="1.1.0" 
service="WFS" 
xmlns:wfs="http://www.opengis.net/wfs"> 
  <wfs:Delete typeName="namespace:feature" xmlns:feature="http://opengeo.org"> 
    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> 
      <ogc:FeatureId fid="value_id"/> 
    </ogc:Filter> 
  </wfs:Delete>
</wfs:Transaction>

Un ejemplo de petición de borrado de puntos, sería:

<wfs:Transaction 
version="1.1.0" 
service="WFS" 
xmlns:wfs="http://www.opengis.net/wfs"> 
  <wfs:Delete typeName="feature:aeropuertos" xmlns:feature="http://opengeo.org"> 
    <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> 
      <ogc:FeatureId fid="aeropuertos.74"/> 
    </ogc:Filter> 
  </wfs:Delete>
</wfs:Transaction>

Todas estas peticiones irán en el request payload de la petición que se envíe a la url del servicio WFS.

Hasta aquí la explicación, espero que os sirva.

Saludos!!!

Anuncios

Un comentario en “WFS-T Request

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s