Servicios de WFS
Con ArcGIS Server, puede publicar servicios que cumplan con la especificación del Servicio de entidades Web (WFS) del Consorcio geoespacial abierto (OGC). Se trata de una especificación abierta para trabajar con entidades geográficas en la web.
Para publicar los datos mediante WFS con ArcGIS Server, debe contar con una licencia de ArcGIS Server adecuada. Consulte la matriz de funcionalidad para obtener información sobre los requisitos de licencias.
Este tema está organizado en las siguientes secciones:
- ¿Por qué utilizar un servicio WFS?
- Cómo crear un servicio WFS
- Establecer propiedades WFS
- Asegurar servicios WFS
- Acceder al servicio WFS
- Edición y servicios WFS
- Temas avanzados
- Lectura recomendada
¿Por qué utilizar un servicio WFS?
Con la distribución de los datos a través de un servicio WFS cualquier aplicación que funcione con los servicios Web puede acceder a las entidades gráficas desde su mapa o geodatabase. Al contrario que el Servicio de mapas Web (WMS) de OGC que devuelve una imagen del mapa, el servicio WFS devuelve entidades con geometría y atributos que el cliente puede utilizar en cualquier tipo de análisis geoespacial. Los servicios WFS también admiten filtros que permiten a los usuarios realizar consultas espaciales y de atributos sobre los datos.
Notas técnicas
- Los servicios WFS que crea con ArcGIS Server cumplen con la especificación WFS 1.1. También son compatibles con la especificación WFS 1.0 de sólo lectura.
- Los servicios WFS utilizan Lenguaje de marcado geográfico (GML) para codificar los datos de entidad. GML es únicamente una forma de utilizar XML para representar la información geográfica. El GML utilizado por los servicios WFS de ArcGIS Server utiliza el perfil de entidades simples. Para obtener más información acerca del GML, consulte Vista general de la ayuda de GML en ArcGIS en la Ayuda de ArcGIS Desktop.
Cómo crear un servicio WFS
Existen dos formas de crear un servicio WFS: desde un mapa o desde una geodatabase.
Crear un servicio WFS desde un mapa
Puede crear un servicio WFS empezando con un documento de mapa de ArcMap (.mxd). Publique el documento de mapa como un servicio de mapas de ArcGIS Server utilizando Administrador o ArcCatalog. Cuando se le pregunte por los recursos que desee habilitar, marque WFS. Se creará una dirección URL que podrá utilizar cualquier cliente WFS para acceder al servicio.
Si necesita ayuda para publicar el servicio, consulte Publicar un recurso SIG en el servidor.
El documento de mapa es una especificación de las capas que estarán disponibles en el servicio WFS. La simbología, definiciones de consulta y alias de campo definidos en el nivel de capa no se transferirán al servicio WFS, ya que el objetivo del servicio es exponer las entidades de los datos. Para exponer la propiedades visuales del mapa mediante especificaciones OGC, utilice un servicio WMS. Aspectos que debe recordar cuando publique un servicio WFS a partir de un documento de mapa:
- Si desea que el servicio WFS sea compatible con transacciones para edición (WFS-T), los datos de origen de todas las capas del mapa deben proceder de la misma geodatabase de ArcSDE. De lo contrario, el mapa contendrá capas de diversas fuentes.
- Dos o más capas del mapa no pueden hacer referencia a la misma clase de entidad o tener el mismo nombre. En caso de coincidir, recibirá el mensaje de error que indicará que el elemento o el nombre del Espacio de trabajo están duplicados.
- El nombre de la capa será el nombre del tipo devuelto desde WFS.
- Para publicar los datos a través de un servicio WFS, los datos deberán estar registrados en la geodatabase, incluidas las vistas SDE.
- Dado que WFS sólo trabaja con entidades, cualquier capa ráster del mapa quedará excluida del servicio.
- Los servicios WFS no admiten las clases virtuales, como por ejemplo uniones, relaciones, eventos XY, rutas o coberturas o capas basadas en extensiones de Data Interoperability.
Si utiliza el documento de mapa de origen para otros propósitos distintos de la publicación de servicios WFS, tendrá que hacer una copia del documento de mapa que actuará como el documento fuente para el servicio WFS. La copia se puede modificar para que cumpla con los requisitos anteriores sin que afecte al documento de mapa original.
Crear un servicio WFS desde una geodatabase
Otra forma de crear un servicio WFS es comenzar con una geodatabase. Se puede utilizar cualquier tipo de geodatabase: de archivos, personal o de ArcSDE. Publique la geodatabase como un servicio de geodatos de ArcGIS Server utilizando Administrador o ArcCatalog. Cuando se le pregunte por los recursos que desee habilitar, marque WFS. Se creará una dirección URL que podrá utilizar cualquier cliente WFS para acceder al servicio.
Al crear un servicio WFS desde un servicio de geodatos, todas las clases de entidad a las que el usuario conectado tiene acceso se mostrarán en el servicio. Además, sólo se mostrarán en el servicio las clases de entidad, las tablas y las vistas SDE que están registradas en la geodatabase.
Si necesita ayuda para publicar el servicio, consulte Publicar un recurso SIG en el servidor.
Crear un servicio WFS desde una geodatabase le permite editar las entidades así como leerlas y consultarlas.
Notas acerca de la creación de servicios WFS
Si una clase de entidad del mapa o geodatabase utiliza una referencia espacial que no se pueda representar con un código EPSG, WGS 84 se utilizará como la referencia espacial para esa clase de entidad.
El servicio WFS ignorará las clases de entidad del mapa o geodatabase que utilicen un sistema de referencia espacial desconocido.
Establecer propiedades WFS
Una vez publicado, puede establecer las propiedades específicas en el servicio WFS. Estas propiedades definen los metadatos que los clientes pueden utilizar para obtener información acerca del servicio. Por defecto, se establecen algunas propiedades a nivel de servicio, mientras que otras se dejan sin establecer. A continuación, se describe cómo utilizar Administrador o ArcCatalog para establecer las propiedades que definen los metadatos a nivel de servicio:
- Abra ArcCatalog o el Administrador de ArcGIS Server.
- Abra el cuadro de diálogo Propiedades del servicio. Para hacer esto en ArcCatalog, haga clic con el botón derecho del ratón en un servicio existente y, a continuación, haga clic en Propiedades del servicio. En Administrador de ArcGIS Server, haga clic en la ficha Servicios, haga clic en Administrar servicios y, a continuación, haga clic en el icono Editar del servicio.
- Haga clic en la ficha Recursos.
- En la lista de recursos, marque WFS si no está activo. Si lo está, haga clic en las letras WFS. Verá aparecer algunas propiedades específicas de WFS.
- Haga clic en Introducir propiedades del servicio a continuación.
- En los cuadros de texto, introduzca los metadatos a nivel de servicios que desee incluir, como por ejemplo, el nombre del servicio, el título y la información de contacto del autor.
- Después de agregar los metadatos, haga clic en Guardar y Reiniciar. La información que ha introducido se mostrará en el archivo de recursos generado por el sistema.
Para obtener una descripción de estas propiedades, consulte la versión 1.0 de la Especificación habitual de servicios Web de OGC.
Tenga en cuenta que la casilla de verificación Habilitar transacciones se utiliza para poder aplicar las ediciones mediante WFS-T. Consulte la sección Edición y servicios WFS que se encuentra más abajo para obtener más información.
Otra forma de definir los metadatos es utilizar un archivo de recursos externo. Al utilizar el archivo de recursos externos se pueden incluir proyecciones adicionales de los tipos de entidad distintos de los predeterminados. Los predeterminados incluyen el sistema de coordenadas de la capa o la clase de entidad y WGS84 (EPSG 4326). Consulte la sección Temas avanzados que se encuentra más abajo para obtener más información acerca del uso de archivos de recursos externos.
Una de las novedades de ArcGIS 10.0 es que también puede establecer la propiedad DefaultMaxFeatures, que le permite controlar el número máximo de entidades devueltas por el servicio. Esta propiedad se puede establecer en el archivo de configuración de servicios o en los archivos de recursos externos. La propiedad DefaultMaxFeatures es compatible únicamente con WFS 1.1.0 de forma que si utiliza los archivos de recursos externos únicamente tendrá que establecer esta propiedad en el archivo que hace referencia a las propiedades 1.1.0.
En el archivo de configuración de servicios la propiedad DefaultMaxFeatures se deberá definir en la sección WFSServer de la siguiente manera:
<Extension> <TypeName>WFSServer</TypeName> <Enabled>true</Enabled> <Properties> ... <EnableDefMaxFeatures>true</EnableDefMaxFeatures> <DefMaxFeaturesValue>200</DefMaxFeaturesValue> </Properties> ... </ows:Constraint> </Extension>
Si está utilizando recursos externos, la propiedad DefaultMaxFeatures se debe definir en la sección de metadatos del archivo 1.1.0 de WFSServer de la siguiente forma:
<ows:Constraint name="DefaultMaxFeatures"> <ows:Value>200</ows:Value> </ows:Constraint>
Caracteres especiales
Los siguientes caracteres no pueden incluirse en ninguna de las propiedades de servicio: &, <, >, ", '. Si necesita utilizar uno de estos caracteres, debe sustituir la secuencia de escape adecuada en el siguiente cuadro:
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Asegurar servicios WFS
Un servicio WFS expone un mapa o servicio de geodatos de ArcGIS Server a los consumidores de WFS. La seguridad para un servicio WFS se gestiona controlando la seguridad de su mapa o servicios de geodatos principales. Si a un rol en particular, por ejemplo, Urbanistas, se les deniega el acceso a un mapa, entonces los Urbanistas no podrán tener acceso al mapa, independientemente de si intentan utilizarlo a través de SOAP, REST o interfaces WFS.
ArcGIS Server es compartible con una cantidad de esquemas de autenticación diferentes. Los servicios que se espera que se puedan acceder a través de las interfaces OGC se deben asegurar con HTTP Basic, HTTP Digest o la Autenticación de Windows integrada. La mayoría de clientes OGC (tanto los de ESRI y con los que no lo son) entenderán y trabajarán con estos sistemas de autenticación estándar generalizados.
Acceder al servicio WFS
Cuando crea un servicio WFS con ArcGIS Server, se puede utilizar en cualquier cliente que admita WFS.
Tipos de clientes
Un navegador Web es el cliente más sencillo de un servicio WFS. Las solicitudes WFS pueden realizarse mediante HTTP, y las respuestas o excepciones se devuelven a través del navegador. Todos los servicios WFS admiten tres operaciones: GetCapabilities, DescribeFeatureType y GetFeature. A través de los parámetros de la dirección URL, puede utilizar estas operaciones para obtener metadatos de servicio, información del tipo de entidad y entidades codificadas de GML desde el servicio WFS. Estas operaciones y parámetros se detallan en las especificaciones WFS del OGC.
Existen muchos clientes de terceros disponibles para utilizar servicios WFS. Para utilizar los servicios WFS creados por ArcGIS Server, el cliente debe admitir WFS 1.1 o 1.0 y el Perfil de entidades sencillo de GML.
La aplicación de la representación cartográfica en la red que incluye ArcGIS Server no admite la adición de servicios WFS. Sin embargo, ArcCatalog y ArcMap pueden trabajar con servicios WFS. Si desea obtener ayuda sobre el uso de los servicios WFS en ArcMap, consulte Cómo trabajar con WFS utilizando ArcGIS Desktop.
La especificación WFS 1.1 indica que para muchos sistemas de coordenadas geográficas, incluido el WGS84, las coordenadas se devuelven en el orden de latitud y longitud (y,x). Los servicios WFS publicados a través de ArcGIS server siguen esta especificación. Algunos clientes WFS, sin embargo, esperan que las coordenadas se devuelvan en el orden de longitud y latitud (x,y). En este caso, puede seleccionar el intercambio del orden de las coordenadas para las entidades devueltas procedentes del servicio WFS para que se devuelvan en el orden de longitud y latitud. Consulte la sección Temas avanzados que se encuentra más abajo para obtener más información.
Estructura de la dirección URL
Para conectar con el servicio, es necesario conocer la dirección URL. La dirección URL sigue este patrón:
http://<server name>/<instance name>/services/<folder name (si fuera aplicable)>/<service name>/<service type>/WFSServer?
- El nombre del servidor es el nombre del equipo del servidor Web.
- El nombre de instancia es el nombre de la instancia de ArcGIS Server que ha especificado al instalar ArcGIS Server.
- El tipo de servicio puede ser MapServer o GeoDataServer, dependiendo de si ha creado el servicio WFS desde un mapa o una geodatabase, respectivamente.
Por ejemplo, si ha habilitado el recurso WFS en un servicio de mapas WFSDemoService en una carpeta DemoFolder en un servidor MyServer con el nombre de instancia predeterminado de arcgis, la dirección URL sería: http://MyServer/arcgis/services/DemoFolder/WFSDemoService/MapServer/WFSServer?
De manera similar, si ha habilitado el recurso WFS en un servicio de geodatos, la dirección URL sería: http://MyServer/arcgis/services/DemoFolder/WFSDemoService/GeoDataServer/WFSServer?
Utilizar filtros
Cuando trabaja con servicios WFS, puede utilizar una serie de filtros para seleccionar grupos de entidades. Los servicios WFS creados con ArcGIS Server utilizan la versión 1.1 de Especificación de implementación de codificación de filtro de OpenGIS (FE) de OGC. Estos son los filtros que puede aplicar:
Geometría |
Espacial |
Lógica |
Comparación |
Ordenar |
Sobre |
BBOX |
And |
EqualTo |
SortBy* |
Punto |
Equals |
O |
NotEqualTo |
|
Multipunto |
Inconexa |
No |
LessThan |
|
Cadena de línea |
Interseca |
GreaterThan |
||
Polígono |
Cruza |
LessThanOrEqualTo |
||
Toca |
GreaterThanOrEqualTo |
|||
Dentro de |
Como |
|||
Contiene |
Entre |
|||
Superposiciones |
NullCheck |
El filtro SortBy únicamente se puede aplicar a servicios de WFS que se basan en datos almacenados en una geodatabase de ArcSDE.
Ejemplos
Los ejemplos de uso de GetFeature con estos filtros se pueden encontrar en la sección 9.5 de la Especificación de la implementación del servicio de entidades Web.
Trabajar con el parámetro FeatureID
El parámetro FeatureID se puede utilizar en las solicitudes GetFeature para pedir entidades específicas en un servicio WFS. El parámetro FeatureID está formado por FeatureType y gml:id y no por el OBJECTID de la entidad. El formato de FeatureID de una entidad en un servicio WFS de ArcGIS es <FeatureType>.<gml:id>. Un método para identificar el gml:id de una entidad en un servicio WFS es realizar una solicitud GetFeature en el FeatureType de interés.
gml:ids no se proporcionan para entidades de los servicios WFS que están basados en shapefiles.
Por ejemplo: Hay un FeatureType llamado Ciudades en un servicio WFS. Si realiza una solicitud GetFeature para las Ciudades, la respuesta incluirá el gml:id de cada entidad.
Ejemplo de URL: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities
En este ejemplo, el FeatureID para la ciudad de Vancouver sería cities.F293__1. La siguiente solicitud se podrá utilizar para solicitar específicamente la ciudad de Vancouver utilizando el FeatureID: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&featureid=cities.F293__1
Trabajar con el parámetro Filtro
El parámetro Filtro se puede utilizar en las solicitudes de GetFeature para solicitar entidades específicas en un servicio de WFS. El beneficio del parámetro Filtro es que forma parte de la codificación estándar de pares de valor de palabras clave definida en la especificación de WFS y se puede incorporar al final de una solicitud de HTTP. El valor del parámetro Filtro se debe configurar con una dirección URL codificada con la cadena de texto XML de filtro OGC. Todo filtro compatible que se encuentre en la tabla anterior se puede codificar y enviar al servidor a través del parámetro Filtro.
Por ejemplo, si creó un Tipo de entidad denominado "grupos de bloques" en un servicio de WFS, puede solicitar entidades de grupos de bloques dentro de la extensión -122.423192682619, 37.7877919206256, -122.421377806544, 37.7893634225143 enviando la siguiente solicitud de GetFeature:
http://server/arcgis/services/playground/sanfrancisco_wfs/MapServer/WFSServer?service=WFS&request=GetFeature&version=1.1.0&typename=esri:blockgroups&Filter=<ogc:Filter><ogc:BBOX><ogc:PropertyName>Shape</ogc:PropertyName><gml:Box srsName="urn:x-ogc:def:crs:EPSG:4326"><gml:coordinates>37.7877919206256,-122.423192682619 37.7893634225143,-122.421377806544</gml:coordinates></gml:Box></ogc:BBOX></ogc:Filter>
Si desea solicitar una entidad de grupos de bloques que contenga una entidad de punto específica, como 122,431577, 37,749936, puede enviar la siguiente solicitud de GetFeature:
http://server/arcgis/services/playground/sanfrancisco_wfs/MapServer/WFSServer?service=WFS&request=GetFeature&version=1.1.0&typename=esri:blockgroups&Filter=<ogc:Filter><ogc:Contains><ogc:PropertyName>Shape</ogc:PropertyName><gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326"><gml:pos srsName="urn:x-ogc:def:crs:EPSG:4326">37.749936 -122.431577</gml:pos></gml:Point></ogc:Contains></ogc:Filter>
WFS requiere prefijos de espacio de nombre dentro de la cadena de texto XML del filtro. Además, para evitar que los navegadores Web o servidores Web completen conversiones incorrectas, codifique la cadena de texto XML del filtro en una dirección URL antes de enviarla al servidor.
Edición y servicios WFS
Los servicios de mapas y los servicios de geodatos son los que utiliza para publicar datos a partir de las fuentes de datos de ESRI, como por ejemplo, la geodatabase. Cuando publique un mapa o un servicio de geodatos con el recurso WFS, se puede acceder a los datos a través de clientes WFS compatibles con OGC. Estos clientes WFS pueden ver también los últimos cambios realizados en los datos.
Cuando una solicitud procede de un cliente WFS, como por ejemplo un visor, los datos se devuelven como si existieran en la fuente de datos en ese momento. Por ejemplo, suponga que tiene un documento de mapa que contiene una clase de entidad. Dicha clase de entidad procede de una geodatabase de archivos. Después, publica ese documento de mapa como un servicio de mapas y habilita el recurso WFS. Los clientes que tengan un visor WFS podrán acceder a los datos de la clase de entidad mediante la dirección URL de WFS proporcionada por el servicio de mapas.
Ahora suponga que otro usuario accede a la geodatabase de archivos de origen y agrega, actualiza y elimina entidades en la clase de entidad. La próxima vez que el cliente que tiene un visor WFS realice una actualización, se verán los datos con las ediciones más recientes.
Cuando la fuente de datos es una geodatabase de ArcSDE, los servicios de geodatos y los servicios de mapas publican los datos procedentes de una versión específica. Si los datos se editan en esa versión, tanto los clientes WFS como los no WFS podrán ver los cambios realizados. Sin embargo, si las ediciones se hacen en otras versiones, los clientes no verán los cambios hasta que éstos se concilien con la versión publicada.
Esto significa que tendrá un mayor control sobre los datos expuestos a través de sus servicios. Suponga que publica datos con el recurso WFS desde una versión llamada WFS. Por un lado, los clientes que tienen visores WFS empiezan a acceder a los datos a través de su servicio. Mientras que por otro, los editores de la oficina utilizan ArcGIS para actualizar la versión predeterminada. A continuación, los cambios realizados por los editores se revisan y se ajustan si es necesario. Después de completar la evaluación, la versión WFS se concilia con la versión predeterminada. Y llegados a este punto, es ahora cuando los clientes WFS podrán ver las últimas actualizaciones realizadas por los editores.
Servicios WFS transaccionales
Un servicio WFS transaccional (conocido algunas veces como WFS-T) permite a los editores de WFS aplicar los cambios en los datos de la base de datos de origen a través del servicio WFS. Para aplicar los cambios a través de WFS-T, los datos deben proceder de una geodatabase de ArcSDE. Las transacciones se pueden habilitar en los servicios que tienen datos versionados, datos no versionados o una combinación de ambos. Si selecciona utilizar los datos versionados también se recomienda que publique el servicio desde una versión no predeterminada.
Para publicar la geodatabase como un servicio WFS transaccional, siga estos pasos:
- Determine si desea que los datos publicados a través del servicio WFS sean versionados o no. Si está publicando datos versionados, cree una versión específicamente para los editores de WFS transaccionales. Si está utilizando datos no versionados, puede publicar el servicio en la versión predeterminada.
- Seleccione el tipo de servicio que desee utilizar para publicar los datos como un servicio WFS. Puede publicar un archivo de conexión de geodatabase (como un servicio de geodatos) o un documento de mapa (como un servicio de mapas). Si está utilizando un servicio de mapas con los datos versionados asegúrese de que los datos en el documento de mapa únicamente hacen referencia a los datos procedentes de la versión específica creada para los editores de WFS. Asegúrese de que el recurso WFS está habilitado en el servicio.
- Habilite las transacciones en el servicio. Esto se puede hacer en ArcCatalog o en Administrador de la siguiente manera:
- Pare el servicio.
- Visualice las Propiedades del servicio.
- Haga clic en la ficha Recursos.
- Haga clic en el nombre WFS (no en la casilla de verificación).
- Marque Habilitar transacciones.
- Inicie el servicio.
Después de habilitar las transacciones, los clientes WFS pueden aplicar los cambios a la geodatabase utilizando métodos WFS transaccionales. A continuación, se muestra un ejemplo de cómo se pueden aplicar los cambios:
- El cliente WFS conecta con el servicio WFS que se ha publicado con las transacciones habilitadas.
- Las entidades editadas y las filas se bloquean en el servidor (esto se puede hacer con el método WFS GetFeatureWithLock).
- Las ediciones se realizan con un editor de WFS en el cliente WFS.
- Dichas ediciones se aplican al servidor (esto se puede llevar a cabo con el método WFS de Transacción).
Cuando se envían las ediciones, los bloqueos se liberan y otros editores de WFS pueden editar las entidades. Los bloqueos también se liberan al expirar. Por defecto, los bloqueos expirarán a los 5 minutos, pero esto se puede ajustar especificando un tiempo de espera en minutos utilizando el método GetFeatureWithLock. El administrador puede establecer el tiempo de espera predeterminada editando manualmente la configuración y estableciendo el elemento DefaultLockExpiration (tiempo en minutos).
Cuando un cliente solicita un bloqueo con GetFeatureWithLock, se devuelve un conjunto de entidades con las entidades bloqueadas y un lockID. Si no se puede bloquear alguna de las entidades, la solicitud fallará y el cliente tendrá que volver a inicializar GetFeatureWithLock. De este modo, hasta que no se liberen los bloqueos, se evitará que otros clientes adquieran bloqueos en estas entidades.
Para realizar transacciones de sólo inserción no es necesario que las entidades estén bloqueadas. Además, si no se están modificando (ni actualizando o eliminando) las entidades existentes no es necesario inicializar GetFeatureWithLock. Cualquier solicitud de transacción con actualizaciones o eliminaciones debe tener un lockID.
Cuando se envían los cambios a través de WFS-T, se aplican en la versión publicada (con los datos versionados) o en las tablas de negocio (con datos no versionados). Las siguientes secciones tratan las diferencias importantes de flujos de trabajo que se han de tener en cuenta cuando se trabaja con datos versionados o no versionados.
Servicios WFS-T y datos versionados
La potencia del versionado permite mostrar la geodatabase tanto a los editores WFS como a los no WFS y fusionar de manera eficaz las ediciones realizadas por los dos grupos, incluida la detección total de los conflictos. Para fusionar las ediciones, puede conciliar y enviar la versión WFS-T publicada con su versión principal. Si hay bloqueos importantes, el sistema no permitirá que ni la conciliación ni el envío se realicen correctamente. De este modo, se evitan los conflictos entre las entidades bloqueadas por clientes WFS-T y los cambios en las entidades debido al proceso de conciliación y envío. Además, el proceso de conciliación y envío bloqueará la versión publicada, evitando que GetFeatureWithLock y Transacción se inicialicen durante dicho proceso. Para obtener más información acerca de trabajar con datos versionados: Un recorrido rápido por la función versionar
Los bloqueos de entidad se mantienen en el servidor por medio de una tabla de bloqueos. La tabla de bloqueos se crea cuando se habilitan las transacciones y aparece como una tabla habitual de la geodatabase. El nombre de la tabla se crea siguiendo la convención VERSION_<versionID>_ROW_LOCKS. Para evitar que el proceso de conciliar y enviar se bloquee, los administradores podrán eliminar los bloqueos importantes eliminando directamente las filas de la tabla de bloqueos antes de inicializar el proceso de conciliar y enviar.
La versión WFS-T publicada no deberá editarse con ArcGIS. El editor de ArcGIS no tiene en cuenta los bloqueos de entidad y, por tanto, se pueden editar las entidades bloqueadas. En ese caso, las ediciones realizadas en ArcGIS pueden entrar en conflicto e impedir que el cliente WFS-T pueda cargar los cambios. Crear y editar versiones secundarias de la versión publicada también podría causar problemas similares si los cambios se concilian y se envían a la versión publicada.
Diversos servicios WFS-T pueden hacer referencia a la misma versión publicada, dado que todos ellos comparten la misma tabla de bloqueos. Existe una asociación 1 a 1 entre la versión publicada y su tabla de bloqueos.
Si deshabilita transacciones o elimina el servicio WFS, la tabla de bloqueos no se borrará automáticamente. Cuando no haya servicios WFS-T haciendo referencia a la versión, podrá eliminar la tabla manualmente.
Servicios WFS-T y datos no versionados
Si publica datos no versionados en un servicio WFS-T las ediciones se aplican directamente a las tablas de negocio de la geodatabase de forma que, una vez se han realizado las ediciones, no se pueden deshacer. Para obtener más información acerca de trabajar con datos no versionados consulte:
Con datos no versionados basados en servicios WFS-T, los bloqueos de entidad también se mantienen en el servidor en una tabla de bloqueos, que se crea cuando se habilitan las transacciones en el servicio. Si únicamente tiene previsto que los clientes WFS-T realicen las ediciones a través del servicio, el comportamiento será el mismo que el servicio basado en datos versionados. Sin embargo, si su intención es tener clientes que no sean WFS-T, como por ejemplo ArcMap, para editar los datos publicados en el servicio hay algunos aspectos importantes que debe tener en cuenta:
- Los editores de ArcMap no tienen en cuenta los bloqueos de entidad y, como resultado, las entidades bloqueadas a través del servicio WFS-T se pueden editar.
- Si un editor de ArcMap edita las entidades, aparecerán bloqueadas para los clientes WFS-T. Como resultado, los clientes WFS-T no pueden bloquear, actualizar o eliminar dichas entidades hasta que el editor de ArcMap guarde las ediciones.
Si deshabilita transacciones o elimina el servicio WFS, la tabla de bloqueos no se borrará automáticamente. Cuando no haya servicios WFS-T haciendo referencia a la versión, podrá eliminar la tabla manualmente.
Notas
- El usuario DBMS que utiliza ArcGIS Server para conectarse a la geodatabase de ArcSDE debe disponer de permisos para crear tablas en la DBMS con el fin de poder utilizar WFS-T correctamente.
- ArcMap no tiene un mecanismo para la edición de WFS transaccional, lo que significa que debe utilizar otro cliente para editar las entidades con WFS.
- Puede utilizar los servicios agrupados cuando realice la edición a través de WFS-T ya que el acceso al servicio no siempre es necesario.
- Las clases de entidad que son sensibles a valores z no se pueden editar con WFS-T.
Temas avanzados
Esta sección contiene elementos de información avanzados relacionados con los servicios WFS:
- Utilizar archivos de recursos externos
- Controlar el orden del eje
- Utilizar nombres de tipo calificados completamente
Utilizar archivos de recursos externos
Publicar un servicio WFS utilizando archivos de recursos externos está pensado para usuarios que estén familiarizados con las especificaciones WFS de OGC y la sintaxis de los archivos de recursos WFS. Esta opción le proporciona la máxima flexibilidad para personalizar los servicios WFS. Con los archivos de recursos externos, puede hacer lo siguiente:
- Agregar información de metadatos a nivel de servicio a archivos de recursos WFS.
- Agregar información de metadatos a nivel de entidad a archivos de recursos WFS.
- Agregar sistemas adicionales de referencia espacial predefinidos desde la lista de proyección predefinida de ArcGIS Server.
Si se publica un servicio WFS utilizando un archivo de recursos externos se puede ahorrar el tiempo que lleva crear el archivo de recursos desde el principio cada vez que se accede al servicio. Esto puede mejorar la velocidad de conexión del servicio WFS, especialmente cuando existen muchos nombres de tipo en el servicio. Sin embargo, si realiza cambios en el documento de mapa o la geodatabase subyacentes del servicio, también deberá actualizar el archivo de recursos adecuadamente para que el servicio siga funcionando.
Hay dos métodos diferentes que se pueden utilizar para crear un archivo de recursos externo. Puede crear los archivos de recursos desde el principio en XML o en el editor de texto. También puede generar un archivo de recursos publicando un servicio WFS con los valores predeterminados e inicializando GetCapabilities desde el navegador Web. Los contenidos devueltos desde las solicitudes GetCapabilities pueden guardarse como un archivo .xml, modificarse según sea necesario y utilizarse como el archivo de recursos externo. El tema de cómo estructurar y rellenar el contenido del archivo de recursos externo se encuentra fuera del ámbito de este sistema de ayuda, pero se puede obtener más información en el vínculo Lectura recomendada al final de este tema.
A partir de ArcGIS 9.3 SP1, ArcGIS Server es compatible con las especificaciones OGC WFS 1.1.0 y 1.0.0. Como resultado, los pasos para crear y utilizar archivos de recursos externos para ArcGIS 9.3 SP1 han cambiado. En los siguientes pasos se explica cómo se crean los archivos de recursos externos a partir de un servicio WFS existente y cómo se publica un servicio WFS utilizando estos archivos. Los pasos sirven tanto para ArcGIS 9.3 como para el nuevo proceso que comienza en ArcGIS 9.3 SP1.
Cómo crear y publicar un servicio WFS con archivos de recursos externos en ArcGIS 9.3
Parte 1: crear un archivo de recursos externo a partir de un servicio WFS existente
- Abra ArcCatalog o el Administrador de ArcGIS Server.
- Abra el cuadro de diálogo Propiedades del servicio. Para hacer esto en ArcCatalog, haga clic con el botón derecho del ratón en un servicio existente y, a continuación, haga clic en Propiedades del servicio. En Administrador de ArcGIS Server, haga clic en la ficha Servicios y, a continuación, haga clic en el icono Editar del servicio.
- Haga clic en la ficha Recursos.
- En la lista de recursos, marque WFS si no está activo. Si lo está, haga clic en las letras WFS. Aparecerán algunas propiedades específicas de WFS.
- Resalte la URL de WFS y, cópiela y péguela en un navegador web.
- Para crear el archivo de recursos externo para las especificaciones WFS 1.1.0, incorpore ?request=getCapabilities o request=getCapabilities&version=1.1.0 en la dirección URL de WFS del navegador Web y guarde los resultados como un archivo XML con el número de versión incorporado al final. En ArcGIS 9.3, el archivo .xml se debe guardar como GetCapabilities110.xml.
Parte 2: crear un Servicio WFS con un archivo de recursos externo en ArcGIS 9.3
Cuando se hayan creado los archivos de recursos, se pueden ubicar en una carpeta accesible para el SOC y el servidor. Por ejemplo, el archivo se podrán ubicar en la misma carpeta que la geodatabase o documento de mapa del servicio. También se puede utilizar una ubicación URL.
Un servicio existente que esté utilizando las propiedades predeterminadas se puede actualizar para que utilice un archivo de recursos externo o se puede crear un nuevo servicio que haga referencia al archivo de recursos externo. Los siguientes pasos describen cómo publicar un servicio WFS con un archivo de recursos externo.
Es importante tener en cuenta que únicamente se puede guardar un archivo de recursos externo en un carpeta en ArcGIS 9.3; en caso contrario, el servidor no podrá distinguir qué archivo de recursos debe utilizar, ya que todos ellos se deben llamar GetCapabilities110.xml.
Cómo publicar un servicio WFS con archivos de recursos externos:
- Abra ArcCatalog o el Administrador de ArcGIS Server.
- Pare el servicio que desee actualizar.
- Abra el cuadro de diálogo Propiedades del servicio. Para hacer esto en ArcCatalog, haga clic con el botón derecho del ratón en un servicio existente y, a continuación, haga clic en Propiedades del servicio. En Administrador de ArcGIS Server, haga clic en la ficha Servicios y, a continuación, haga clic en el icono Editar del servicio.
- Haga clic en la ficha Recursos.
- En la lista de recursos, marque WFS si no está activo. Si lo está, haga clic en las letras WFS. Verá aparecer algunas propiedades específicas de WFS.
- Haga clic en Utilizar archivos de recursos externos.
- El siguiente paso es especificar la ubicación del archivo de recursos externo. La ubicación se especifica proporcionando la dirección URL o la ruta de la carpeta que contiene el archivo de recursos. Al especificar la ubicación o la dirección URL, no incluya el nombre del archivo .xml. Un ejemplo de la ubicación de la dirección URL es http://<server name>/arcgis/wfs, y un ejemplo de una ubicación de carpeta es C:\arcgis\arcgisserver\wfs.
- Reinicie el servicio.
Cómo crear y publicar un servicio WFS con archivos de recursos externos en ArcGIS 9.3 SP1
A partir de ArcGIS 9.3 SP1, ArcGIS Server es compatible con las especificaciones OGC WFS 1.1.0 y 1.0.0. Como resultado, se requieren dos archivos de recursos externos, uno que haga referencia a las especificaciones 1.1.0 y otro que haga referencia a las especificaciones 1.0.0.
Parte 1: crear archivos de recursos externos desde un servicio WFS existente
- Abra ArcCatalog o el Administrador de ArcGIS Server.
- Abra el cuadro de diálogo Propiedades del servicio. Para hacer esto en ArcCatalog, haga clic con el botón derecho del ratón en un servicio existente y, a continuación, haga clic en Propiedades del servicio. En Administrador de ArcGIS Server, haga clic en la ficha Servicios y, a continuación, haga clic en el icono Editar del servicio.
- Haga clic en la ficha Recursos.
- En la lista de recursos, marque WFS si no está activo. Si lo está, haga clic en las letras WFS. Aparecerán algunas propiedades específicas de WFS.
- Resalte la URL de WFS y, cópiela y péguela en un navegador web.
- Para crear el archivo de recursos externo para las especificaciones WFS 1.1.0, incorpore ?request=getCapabilities o request=getCapabilities&version=1.1.0 a la dirección URL de WFS en el navegador Web y guarde los resultados como un archivo XML. El nombre de archivo debe tener el formato <prefix>110.xml. Por ejemplo, si el servicio se llama California, el nombre del archivo puede ser California110.xml, donde California es el prefijo.
- Para crear el archivo de recursos externo para las especificaciones WFS 1.0.0, incorpore ?request=getCapabilities&version1.0.0 en la dirección URL de WFS y guarde los resultados como un archivo XML. El nombre de archivo debe tener el formato <prefix>100.xml, y el prefijo debe coincidir con el del archivo 1.1.0. Siguiendo el ejemplo del paso 6, si el archivo 1.1.0 se llama California110.xml, el archivo 1.0.0 debe llamarse California100.xml.
Parte 2: crear un Servicio WFS con un archivo de recursos externo como 9.3 SP1
Cuando se hayan creado los archivos de recursos, se pueden ubicar en una carpeta accesible para el SOC y el servidor. Por ejemplo, el archivo se podrán ubicar en la misma carpeta que la geodatabase o documento de mapa del servicio. También se puede utilizar una ubicación URL. Es importante tener en cuenta que al igual que ocurre en ArcGIS 9.3 SP1, ambos archivos deben colocarse en la misma ubicación.
Un servicio existente que esté utilizando las propiedades predeterminadas se puede actualizar para que utilice un archivo de recursos externo o se puede crear un nuevo servicio que haga referencia a los archivos de recursos externos. Los siguientes pasos describen cómo publicar un servicio WFS con los archivos de recursos externos.
Cómo publicar un servicio WFS con archivos de recursos externos:
- Abra ArcCatalog o el Administrador de ArcGIS Server.
- Pare el servicio que se va a actualizar.
- Abra el cuadro de diálogo Propiedades del servicio. Para hacer esto en ArcCatalog, haga clic con el botón derecho del ratón en un servicio existente y, a continuación, haga clic en Propiedades del servicio. En Administrador de ArcGIS Server, haga clic en la ficha Servicios y, a continuación, haga clic en el icono Editar del servicio.
- Haga clic en la ficha Recursos.
- En la lista de recursos, marque WFS si no está activo. Si lo está, haga clic en las letras WFS. Aparecerán algunas propiedades específicas de WFS.
- Haga clic en Utilizar archivos de recursos externos.
- El siguiente paso es especificar la ubicación de los archivos de recursos externos. La ubicación se especifica proporcionando la dirección URL o la ruta de la carpeta que contiene los archivos de recursos y el prefijo. Por ejemplo, si tiene archivos de recursos denominados California110.xml y California100.xml para su servicio California, el prefijo es California. Si estos archivos se almacenan en http://ArcGIS_Server/arcgis/wfs, deberá especificar http://ArcGIS_Server/arcgis/wfs/California. Si, en su lugar, elije almacenar estos archivos en C:\arcgis\arcgisserver\wfs, deberá especificar C:\arcgis\arcgisserver\wfs\California.
- Reinicie el servicio.
Ahora, cuando un cliente WFS accede al servicio, se hará referencia al archivo de recursos adecuado en función de la versión de la solicitud. Por ejemplo, si el cliente WFS inicializa DescribeFeatureType&version=1.0.0, el servidor responderá con la información procedente del archivo de recursos externo específico 1.0.0. Si no se especifica ninguna versión, se devolverá la información procedente del archivo de recursos externo específico 1.1.0.
Agregar sistemas de referencia espacial a un archivo de recursos externo
Aunque puede solicitar un mapa desde el servicio WFS mediante cualquiera de los cientos de sistemas de referencia espacial compatibles, algunos clientes WFS lo devolverán como error si la referencia espacial que ha solicitado no aparece en el archivo de recursos. Otros clientes, tales como la extensión Data Interoperability, sólo permiten cambiar entre los sistemas de referencia espacial que se muestran en el archivo de recursos.
Puede agregar manualmente más sistemas de referencia espacial al archivo de recursos externo de su servicio WFS. Los archivos de recursos externos se han descrito anteriormente.
Controlar el orden del eje
Las entidades devueltas en algunos sistemas de coordenadas geográficos (por ejemplo, WGS 84) tienen por defecto un orden de eje de latitud, longitud (y, x). Esto cumple con la especificación WFS 1.1. Por ejemplo, un punto podrá devolverse desde una solicitud getfeature con sus coordenadas especificadas de la siguiente manera:
<gml:Point> <gml:pos>48.4922165520043 -122.630685732366</gml:pos> </gml:Point>
Algunos clientes WFS esperan que las coordenadas se devuelvan con un orden de ejes de longitud y latitud (x,y). Para trabajar con estos clientes, puede establecer que el orden del eje del servicio sea longitud y latitud. A continuación, se describe cómo establecer la propiedad:
- Inicie sesión en el equipo que ejecuta ArcGIS server como administrador.
- Cierre ArcGIS Server.
- Vaya a la ubicación de los archivos de configuración del servicio. Por ejemplo, si ArcGIS Server está instalado en c:\arcgis, vaya a c:\arcgis\server\user\cfg.
- Abra el archivo de configuración para el servicio (por ejemplo, myservice.cfg) en un editor de texto.
- En la sección WFS, agregue lo siguiente a las propiedades: <AxisOrderWFS11>longlat</AxisOrderWFS11>. Por ejemplo:
<Extension> <TypeName>WFSServer</TypeName> <Enabled>true</Enabled> <Properties> <AxisOrderWFS11>longlat</AxisOrderWFS11> <CustomGetCapabilities>false</CustomGetCapabilities> <EnableTransactions>false</EnableTransactions> <Name>wfs_WFSTest_ras</Name> <OnlineResource>http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer</OnlineResource> <AppSchemaURI>http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer</AppSchemaURI> <AppSchemaPrefix>wfs_WFSTest_ras</AppSchemaPrefix> </Properties> <Info> <WebEnabled>true</WebEnabled> </Info> </Extension>
- Inicie ArcGIS Server.
Las entidades con coordenadas geográficas solicitadas desde el servicio se devuelven ahora con un orden de ejes de longitud y latitud.
Tenga en cuenta que la propiedad del orden de los ejes únicamente se aplica a entidades con coordenadas geográficas. Las entidades con coordenadas proyectadas siempre se devuelven con un orden de ejes x, y.
Utilizar nombres de tipo calificados completamente
Los nombres de tipo generados para los servicios WFS definidos desde las geodatabases ArcSDE se basarán en el nombre no calificado de la clase de entidad predeterminada. Por ejemplo, el nombre de tipo de una clase de entidad llamada bob.buildings será buildings.
Puede establecer una propiedad para que incluya el nombre calificado completamente cuando se genera el nombre de tipo. Esto se podrá realizar si más de una clase de entidad tiene el mismo nombre pero un propietario diferente en la geodatabase. Cuando se usa el nombre calificado completamente, el nombre de tipo para bob.buildings será bob_buildings.
A continuación, se describe cómo establecer la propiedad para utilizar el nombre calificado completamente:
- Inicie sesión como un administrador en el equipo que ejecuta ArcGIS Server.
- Cierre ArcGIS Server.
- Vaya a la ubicación de los archivos de configuración del servicio. Por ejemplo, si ArcGIS Server está instalado en c:\arcgis, vaya a c:\arcgis\server\user\cfg.
- Abra el archivo de configuración para el servicio (por ejemplo, myservice.cfg) en un editor de texto.
- En la sección WFS, agregue lo siguiente a las propiedades: <UseQualifiedName>true</UseQualifiedName>. Por ejemplo:
<Extension> <TypeName>WFSServer</TypeName> <Enabled>true</Enabled> <Properties> <UseQualifiedName>true</UseQualifiedName> <CustomGetCapabilities>false</CustomGetCapabilities> <EnableTransactions>false</EnableTransactions> <Name>wfs_WFSTest_ras</Name> <OnlineResource>http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer</OnlineResource> <AppSchemaURI>http://bobmk/arcgis/services/wfs/WFSTest_ras/MapServer/WFSServer</AppSchemaURI> <AppSchemaPrefix>wfs_WFSTest_ras</AppSchemaPrefix> </Properties> <Info> <WebEnabled>true</WebEnabled> </Info> </Extension>
- Inicie ArcGIS Server.
Lectura recomendada
Si está interesado en obtener más información acerca de los servicios WFS, consulte estos recursos adicionales: