6 votos

¿GeoServer WFS GetFeature con BBOX devuelve demasiados elementos?

Mis datos están almacenados en PostGIS en EPSG:3035, y consulto los datos utilizando WFS GetFeature como sigue (en CoffeeScript)

  params = {
    service: 'WFS',
    version: '2.0.0',
    request: 'GetFeature',
    typeName: visible_layers.join(','),
    bbox: "#{e.bounds.toBBoxString()},EPSG:4326",
    srsName: "EPSG:4326"
    info_format: 'text/javascript',
    outputFormat: 'text/javascript',
    format: 'text/javascript',
  }

  $.ajax(
    url: GEOSERVER_WFS_URL,
    data: params,
    dataType: 'jsonp'
  )

Esto construye la siguiente URL:

http://192.168.56.1:8080/geoserver/wfs?
  service=WFS&
  version=2.0.0&
  request=GetFeature&
  typeName=namespace:layer,namespace:layer2&
  bbox=5.18532156944275%2C51.04144786489307%2C5.1875638961792%2C51.04270932015568%2CEPSG%3A4326&
  srsName=EPSG%3A4326&
  info_format=text%2Fjavascript&
  outputFormat=text%2Fjavascript&
  format=text%2Fjavascript&
  _=1479898340470

Y esto funciona, aparentemente, hasta que quiero seleccionar también la tubería.

Mis tuberías están todas en la misma tabla, pero uso una capa separada para cada una (así que la misma tabla con diferente SLD), entonces veo dos cosas:

  1. Para cada capa de tuberías obtengo las mismas tuberías (por lo que no utiliza el SLD, que determina lo que es visible?)
  2. Obtengo tuberías que no están dentro de la BBOX, pero sí cerca. Lo cual es raro, porque para mis otros objetos esto no es el caso (solo obtengo objetos dentro de la BBOX).

Me gustaría que la solicitud de la CMA también tuviera en cuenta el SLD de la capa, ¿es posible? ¿Y por qué la selección de la BBOX parece más indulgente para algunas capas?

¿Supongo que he configurado mal algo?

Una idea que se me ocurre es que el WFS coincida con el BBOX? ¿Así que la BBOX de mi tubería cae dentro de la BBOX, no la propia cadena de líneas? Porque eso podría explicar parte del comportamiento. Todavía no está utilizando el SLD :)

0 votos

Entiendo que estas ediciones consecutivas están destinadas a mejorar gradualmente la legibilidad de mi pregunta, pero en realidad cambiar mi código, y sólo las ediciones de menor importancia con respecto a las mayúsculas / minúsculas? ¿Si me refiero a un "bounding box" y escribo "bbox" (más corto) tiene que ir en mayúsculas? Envié minúsculas "wfs" en mi código, y eso funciona (quiero mostrar mi código de trabajo ), y no ponerlo en mayúsculas porque por alguna razón WFS debe ir en mayúsculas cada vez que lo mencionamos? ¿Importa para la legibilidad si escribo geoservidor (como una etiqueta)/Geoservidor (edición 1)/GeoServidor (edición 2)?

9voto

user2831 Puntos 11

El WFS BBOX funciona en modo "bbox vs bbox" por razones de rendimiento, si quieres la intersección de geometría más precisa puedes usar un filtro OGC o un filtro CQL con el operador de intersección.

En cuanto a la otra pregunta, el WFS no tiene en cuenta el SLD, sólo el WMS.

El SLD puede tener filtros en las reglas, incluyendo los espaciales (poco común pero no imposible) pero ojo, sólo serán utilizados por el WMS. Puedes probar algo como:

<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"> <ogc:BBOX> <gml:Box xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:3785"> <gml:coordinates decimal="." cs="," ts=" "> -8033496.4863128,5677373.0653376 -7988551.5136872,5718801.9346624 </gml:coordinates> </gml:Box> </ogc:BBOX> </ogc:Filter>

0 votos

Gracias por su respuesta. Si puedo explicarlo está bien, supongo :) ¿Hay alguna forma alternativa de buscar en un bbox usando el SLD?

0 votos

Gracias por la adición. Pero los SLD's son estáticos imho (¿cierto?). Quiero que el usuario seleccione una caja, y devuelvo todos los elementos dentro de ella. En cambio, ahora estoy comprobando para utilizar vistas postgis, en lugar de utilizar la tabla y dejar que el SLD filtrar los datos. ¿Supongo que esto también puede ser más eficiente? Mientras no sea más lento, hará que la consulta WFS funcione como se espera :)

1 votos

Si se utiliza WFS una vista sqlt paramétrica es definitivamente una buena solución: docs.geoserver.org/stable/es/user/data/database/

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X