¿Pasando parámetros de filtro a GeoServer WFS a través de la URL?

14

Estoy intentando usar la función CURL de PHP para obtener información geoJSON de una instancia de GeoServer. Estoy haciendo esto usando variables de URL en lugar de intentar construir una solicitud GetFeature xml completa.

Sin embargo, me gustaría poder obtener un subconjunto de los resultados en función del contenido de algunos de los campos de propiedad.

Entonces, si bien puedo obtener todos los resultados utilizando esta url:

enlace

¿También puedo limitar los resultados a "Donde el valor de LIKE del campo" o "field = value"?

He pasado una hora recorriendo la documentación de Geoserver / ECQL y ninguna de ellas dice claramente "adjunte las funciones a su URL en este formato". Como resultado, no estoy claro si es posible usar variables de URL para realizar estas tareas, pero algunas personas parecen sugerir que sí.

¿Puede alguien ayudarme con un ejemplo claro de un filtro que funcione utilizando el WFS de GeoServer con parámetros de URL?

    
pregunta Ambulare 13.08.2014 - 14:11

1 respuesta

21

Supongo que has estado leyendo esto enlace

Aquí se incluyen algunas solicitudes de muestra que envían consultas para el servidor de demostración de Boundless, pero que deberían funcionar de manera similar con su propio servidor si tiene la capa de demostración topp: estados instalada.

Selecciona donde STATE_NAME es Illinois

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME='Illinois'

Observe el uso del parámetro de WFS estándar PROPERTYNAME que se usa aquí para acortar la salida. Deje fuera si desea todos los atributos, o escriba una lista para seleccionar algunos atributos.

Luego seleccione los estados cuyo nombre comience con "I"

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME LIKE 'I%25'

Observe que la cadena de comparación es 'I%' pero al menos con mi navegador (Firefox 31.0) debe estar codificada en URL y viene 'I% 25'. Esto no se menciona en el tutorial de CQL. Si sus propios filtros fallan, puede significar que debe codificar en la URL también otros caracteres en su filtro.

Si necesita geojson add & outputformat = application / json

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME LIKE 'I%25'&outputformat=application/json
    
respondido por el user30184 13.08.2014 - 14:53

Lea otras preguntas en las etiquetas