Más

¿Obtiene JSON / JSONP / GeoJSON de la solicitud GetFeature WFS a ArcGIS for Server?

¿Obtiene JSON / JSONP / GeoJSON de la solicitud GetFeature WFS a ArcGIS for Server?


Estoy intentando realizar una solicitud GetFeature a un servicio WFS de ArcGIS 10.2.1 for Server y me gustaría obtener una respuesta en formato GeoJSON.

Si miro las GetCapabilities del servicio, el único formato de salida disponible es:

 texto / xml; subType = gml / 3.1.1 / profiles / gmlsf / 1.0.0 / 0

¿Es posible tener JSON, JSONP o GeoJSON?

¿Cómo configurar ArcGIS 10.2.1 for Server para hacer eso?


No queda claro a partir de la pregunta si está preguntando sobre la posibilidad de editar un servicio ArcGIS para poder proporcionar JSON, JSONP o GeoJSON como parte de un servicio WFS que posee, o si está preguntando desde el punto de vista de un usuario que desea consumir un servicio WFS.

Mirándolo desde la perspectiva de un usuario:

En cualquier servicio web de OGC, ya sea WMS, WFS, WCS, etc., solo puede solicitar formatos que estén disponibles (anunciados) en un servicio a través de su respuesta de solicitud GetCapabilities. Entonces, en el ejemplo anterior, si solo se anuncia GML 3.1.1, solo puede solicitar ese formato.

Cabe señalar que solo porque una pieza de software puede ser capaz de entregar un formato, si el proveedor de servicios decide bloquear ese formato, puede optar por hacerlo.


WMS proporciona una interfaz estándar para solicitar una imagen de mapa geoespacial. El beneficio de esto es que los clientes WMS pueden solicitar imágenes de múltiples servidores WMS y luego combinarlas en una sola vista para el usuario. El estándar garantiza que todas estas imágenes se pueden superponer unas a otras como realmente lo serían en la realidad. Numerosos servidores y clientes admiten WMS.

Las solicitudes de WMS pueden realizar las siguientes operaciones:

Operación Descripción
Excepciones Si ocurre una excepción
GetCapabilities Recupera metadatos sobre el servicio, incluidas las operaciones y los parámetros admitidos, y una lista de las capas disponibles.
GetMap Recupera una imagen de mapa para un área y contenido específicos
GetFeatureInfo (opcional) Recupera los datos subyacentes, incluida la geometría y los valores de atributo, para la ubicación de un píxel en un mapa.
DescribeLayer (opcional) Indica el WFS o WCS para recuperar información adicional sobre la capa.
GetLegendGraphic (opcional) Recupera una leyenda generada para un mapa.


Así es como lo resolví, cambié todo.

WFS no tiene una noción de nivel de zoom o escala, es decir, WMS, mientras que admite la carga de subconjuntos de datos basados ​​en un bbox (consulte los ejemplos de WFS).

Sin embargo, podría ser bueno contribuir.

Esto funciona para GeoServer 2.6.2 con Leaflet 0.7.3. Por cierto, los siguientes números de bbox de SF city se obtuvieron mediante la función nativa de Leaflet

Tu código se ve bien. Simplemente pase el bbox en la URL.

Esto es lo que se me ocurrió, cuando verifico cuántos objetos cargados, dice 4000, lo que significa que también está cargando todo fuera del cuadro delimitador.


Operaciones¶

Todas las versiones de WFS admiten estas operaciones:

Genera un documento de metadatos que describe un servicio WFS proporcionado por el servidor, así como operaciones y parámetros WFS válidos.

Devuelve una descripción de los tipos de funciones admitidos por un servicio WFS.

Devuelve una selección de entidades de una fuente de datos que incluye geometría y valores de atributos.

Evita que una función se edite a través de un bloqueo de función persistente

Edita los tipos de características existentes creando, actualizando y eliminando

Las siguientes operaciones están disponibles en solo versión 2.0.0:

Recupera el valor de una propiedad de característica o parte del valor de una propiedad de característica compleja del almacén de datos para un conjunto de características identificadas mediante una expresión de consulta

Devuelve una selección de funciones y también aplica un bloqueo a esas funciones

Cree una consulta almacenada en el servidor WFS

Elimina una consulta almacenada del servidor WFS

Devuelve una lista de las consultas almacenadas en un servidor WFS.

Devuelve un documento de metadatos que describe las consultas almacenadas en un servidor WFS.

Las siguientes operaciones están disponibles en solo versión 1.1.0:

Recupera características y elementos por ID de un WFS

En los ejemplos que siguen, la URL ficticia http://example.com/geoserver/wfs se utiliza como ilustración. Para probar los ejemplos, sustituya la dirección de un WFS válido. Además, aunque la solicitud normalmente se definiría en una línea sin interrupciones, se agregan interrupciones para mayor claridad en los ejemplos proporcionados.


Configuración de un mapa TomTom

Ahora que hemos colocado el GeoJSON en un objeto JavaScript, configuremos un mapa TomTom.

Si aún no tiene una clave API gratuita, obtenga una de TomTom antes de continuar.

Una vez que tenga su clave, inicialicemos el mapa con tt.map. No entraremos en demasiados detalles sobre esto, ya que el proceso ya está bien documentado.

Copie el código JavaScript a continuación y péguelo en la etiqueta & ltscript & gt inmediatamente después del último fragmento. No olvides pegar tu clave.

contenedor hace referencia a su & ltdiv & gt con la identificación del "mapa".

el centro es el punto de enfoque del mapa una vez que se renderiza. Por brevedad, seleccioné manualmente un punto cerca del centro de la forma, aunque estas coordenadas se podrían calcular fácilmente.

minZoom es un valor entre 0 y 22. Por ejemplo, un minZoom establecido en 0 haría que el mapa se redujera a una vista inicial de todo el mundo.


Solicitando JSONP

El dominio de destino debe admitir solicitudes de JSONP para poder utilizar esta técnica.

Solicitar JSONP desde dominios fuera de su control es muy arriesgado.

Dado que su navegador carga cualquier código que regresa como un script, solo debe solicitar JSONP de un dominio en el que confíe. En general, JSONP es reemplazado por CORS, este último es mucho más seguro y debería ser su opción preferida si ambos están disponibles.

Para solicitar JSONP, use createElement () para agregar una etiqueta de secuencia de comandos al encabezado de su documento.

Cuando se ejecuta el script, el dominio de destino pasa los datos como argumento a otro script, normalmente llamado callback (). El dominio de destino define el nombre del script de devolución de llamada, que es el primer nombre en la página cuando carga la URL de destino en un navegador.

Por ejemplo, cargue http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.geojsonp en la ventana de su navegador para revelar el nombre de devolución de llamada como eqfeed_callback.

Debe definir el script de devolución de llamada en su código:

Utilice el método addGeoJson () para colocar los datos de GeoJSON analizados en el mapa.


Agregar capas de archivos

Puede agregar capas a su mapa importando los datos que ha almacenado en un archivo de texto delimitado (.csv o .txt), archivo de formato de intercambio GPS (.gpx), archivo GeoJSON (.geojson o .json) o shapefile (comprimido en un archivo .zip). Una capa de un archivo se almacena en el mapa.

Al agregar un archivo al mapa, debe usar el Sistema Geodésico Mundial (WGS 84) como su sistema de coordenadas de referencia.

Si su archivo CSV, shapefile o archivo GeoJSON contiene una gran cantidad de datos, o si desea crear una capa que pueda reutilizar en varios mapas, puede publicar una capa de entidades alojada en lugar de agregar el archivo al mapa.

También puede agregar un archivo CSV que no contenga información de ubicación a Map Viewer Classic como una tabla. Esto es útil cuando desea unir datos no espaciales, por ejemplo, reclamos por daños a la propiedad relacionados con un tornado reciente, con datos espaciales, como una capa de códigos postales, utilizando la herramienta de análisis Unir entidades.

  1. Elija Agregar capa desde archivo.
  2. Haga clic en Elegir archivo y busque el archivo en su computadora.
  3. Si está agregando un shapefile, elija generalizar las características para la visualización web o mantener las características originales.
  4. Haga clic en Importar capa.

Si está agregando un archivo GeoJSON, GPX o shapefile, su capa aparece en el mapa. Continúe con el siguiente paso si está agregando un archivo de texto delimitado (CSV o TXT).

Si está agregando un archivo de texto delimitado (.csv o .txt) con información de ubicación, elija que Map Viewer Classic ubique entidades por coordenadas o direcciones o lugares según sea necesario.

Para ubicar entidades por direcciones o lugares, haga clic en el localizador que desea usar o mantenga el predeterminado.

De forma predeterminada, Map Viewer Classic geocodifica ubicaciones según la región de su organización. Para cambiar el país que usa Map Viewer Classic para geocodificar sus ubicaciones, elija un país diferente en el menú desplegable País. Si su archivo contiene ubicaciones de varios países o de un país que no está en la lista, elija Mundo.

Las direcciones de codificación geográfica consumen créditos.

Revise los campos de ubicación y haga clic en una celda para cambiar qué campo o campos de ubicación se utilizan. Si está agregando un archivo CSV con campos de coordenadas compatibles como MGRS o USNG, seleccione los campos de ubicación que correspondan a sus campos de coordenadas si aún no están seleccionados.

Su capa se agrega al mapa.

Arrastra y suelta un archivo

Además de importar su archivo .csv, .txt o .gpx con el botón Agregar clásico de Map Viewer, puede arrastrarlo desde su computadora y soltarlo en su mapa. Map Viewer Classic manejará el archivo como si hubiera usado Agregar. Los navegadores Google Chrome y Mozilla Firefox admiten arrastrar y soltar un archivo .txt, .csv y .gpx.

No puede arrastrar un archivo shapefile o GeoJSON desde su computadora y soltarlo en su mapa, debe usar el botón Agregar.


Métodos y parámetros de filtro WFS

Una introducción a algunos de los parámetros que puede agregar a su solicitud de Web Feature Services (WFS) para filtrar datos sobre la marcha, métodos de filtrado y las herramientas que puede utilizar para ejecutarlos.

Parámetros de URL

Una URL GetFeature de WFS 2.0 básica para solicitar datos tiene la siguiente sintaxis:

  • YOUR_API_KEY - su clave API LDS (inicie sesión en LDS para crear su clave)
  • LAYER_ID - el identificador del conjunto de datos LDS

A continuación, se muestran ejemplos de algunos de los parámetros adicionales que puede utilizar para filtrar o transformar su solicitud:

ParámetroDescripciónEjemplo
contarLimita el número de funciones devueltas (WFS 1.1, 2.0). La sintaxis de WFS 1.0 es maxfeaturescuenta = 4
maxfeatures = 4
SRSName Permite la transformación del sistema de coordenadas sobre la marchaSRSName = EPSG: 2193
(EPSG para NZTM2000)
Nombre de la propiedad Devuelve solo atributos / columnas especificadosPropertyName = id, nombre
BBOX Un filtro espacial que devuelve entidades donde se encuentra una geometría dentro de un cuadro delimitadorBBOX = (forma, -36.764156,174.975230, -36.817467,175.023120)
formato de salidaControla el formato de archivo de su solicitud. Soporta json, csv y kmlformato de salida = json

Para obtener una lista completa de los parámetros de filtro, consulte los enlaces de referencia a continuación para los métodos de filtro CQL y OGC.

Métodos de filtrado

Filtros ECQL

CQL (Common Query Language) es una extensión proporcionada por el software Geoserver que usamos en LDS. CQL es un lenguaje de consulta básico que es simple y rápido de leer y escribir y se parece mucho a SQL.

A continuación, se muestra una solicitud GetFeature de WFS mediante un filtro CQL (tenga en cuenta el parámetro HTTP "cql_filter"). La capa Parcelas primarias de Nueva Zelanda incluye parcelas primarias actuales que están destinadas a uno de una variedad de propósitos, incluida la propiedad de la Corona, lago o río, carretera o ferrocarril.

En este ejemplo, filtramos la capa NZ Primary Parcels para devolver solo las parcelas en las que están destinadas a ser utilizadas en carreteras:

Para facilitar la creación y la demostración, la mayoría de los ejemplos de esta documentación se proporcionan en formato CQL.

Filtros OGC

Los filtros OGC son el método oficial para filtrar consultas WFS. Este método de filtrado se basa en el estándar XML y le permite crear expresiones más complejas.

Esta es la misma solicitud que la anterior pero usando un filtro OGC (tenga en cuenta el parámetro "filtro" HTTP):

Ejecutando su filtro

Si está utilizando una aplicación GIS, es probable que su aplicación tenga una herramienta de creación de consultas incorporada para ayudarlo a crear y ejecutar estos filtros WFS avanzados. Si no tiene una aplicación GIS o desea ejecutar su consulta fuera de una aplicación específica, también puede ejecutar estos filtros:

Directamente en su navegador

Cree su consulta manualmente en el bloc de notas, por ejemplo, luego pegue la URL en la barra de direcciones de su navegador. Utilice el parámetro outputformat que se describe en nuestra documentación de la API Changeset para especificar el formato de archivo en el que se devolverá su solicitud. Si no especifica un formato de salida, los resultados se mostrarán en su navegador.

Ambas consultas anteriores se pueden pegar en su navegador para obtener resultados. Solo recuerde reemplazar el marcador de posición YOUR_API_KEY con su propia clave.

A través de un proceso o una utilidad con guión

Cualquier lenguaje de programación que pueda realizar solicitudes web puede usar WFS y aplicar filtros a estas solicitudes. Debido a que la URL de WFS es solo una cadena de caracteres de texto, la URL que incluye el filtro se puede crear sobre la marcha mediante un script en respuesta a la entrada del usuario o la lógica predeterminada. Este es el verdadero poder de WFS, ya que permite la automatización de procesos que se basan en datos LDS.

Un ejemplo de una herramienta de este tipo es GDAL / OGR. GDAL / OGR es una biblioteca de herramientas de software para la traducción y el procesamiento de datos que hace parte del trabajo pesado que de otra manera tendría que codificarse manualmente. Se puede ejecutar desde la línea de comandos o acceder a través de una API para Python, C y C ++.


GetCapabilities¶

El GetCapabilities La operación solicita metadatos sobre las operaciones, los servicios y los datos ("capacidades") que ofrece un servidor WMS.

Los parámetros para la operación GetCapabilities son:

Parámetro ¿Requerido? Descripción
Servicio Nombre del Servicio. El valor es WMS.
versión Versión de servicio. El valor es uno de 1.0.0, 1.1.0, 1.1.1, 1.3.0.
solicitar Nombre de la operación. El valor es GetCapabilities.

GeoServer proporciona los siguientes parámetros específicos del proveedor para la operación GetCapabilities. Están completamente documentados en la sección de parámetros del proveedor de WMS.

Parámetro ¿Requerido? Descripción
espacio de nombres No limita la respuesta a las capas en un espacio de nombres dado
formato No solicitar el documento de capacidades en un formato determinado

Un ejemplo de solicitud de GetCapabilities es:

Hay tres parámetros que se pasan al servidor WMS, service = wms, version = 1.1.1 y request = GetCapabilities. El parámetro de servicio le dice al servidor WMS que se aproxima una solicitud WMS. El parámetro de versión se refiere a qué versión de WMS se solicita. El parámetro de solicitud especifica la operación GetCapabilities. El estándar WMS requiere que las solicitudes siempre incluyan estos tres parámetros. GeoServer relaja estos requisitos (al establecer la versión predeterminada si se omite), pero para cumplir con los estándares siempre deben especificarse.

La respuesta es un documento XML de capacidades que es una descripción detallada del servicio WMS. Contiene tres secciones principales:

Servicio Contiene metadatos del servicio, como el nombre del servicio, las palabras clave y la información de contacto de la organización que opera el servidor.
Solicitar Describe las operaciones que proporciona el servicio WMS y los parámetros y formatos de salida para cada operación. Si lo desea, GeoServer se puede configurar para deshabilitar el soporte para ciertas operaciones WMS.
Capa Muestra los sistemas de coordenadas y las capas disponibles. En GeoServer, las capas se nombran en la forma "espacio de nombres: capa". Cada capa proporciona metadatos de servicio como título, resumen y palabras clave.


15.4 Servicio de procesamiento web (WPS)

El Servicio de procesamiento web (WPS) es una interfaz estándar que proporciona acceso a procesos predefinidos en datos espaciales. WPS contiene operaciones de control para la iniciación del proceso, así como control y monitoreo de la ejecución del proceso (es decir, algoritmo). Tal proceso de ejecución de algoritmos normalmente produce nuevos datos que pueden ser datos espaciales o nueva información basada en datos espaciales.

Las operaciones clave admitidas por WPS son las siguientes:

GetCapabilities: proporciona metadatos sobre el servicio con una lista de los procesos proporcionados.

DescribeProcess: proporciona una descripción detallada del proceso con una explicación de los parámetros de entrada y salida.

Ejecutar: sirve para iniciar un proceso de servidor utilizando los parámetros de entrada necesarios para devolver los parámetros de salida.

Además, si el servidor ofrece procesos asíncronos, son posibles tres solicitudes adicionales: