Características de puntos que desaparecen en Geoserver usando WMS


10

Tengo un archivo de forma con aproximadamente 6.500 puntos en todo el mundo que estoy tratando de servir con Geoserver 2.2.1 usando WMS. Aparentemente, todo estuvo bien hasta que implementé una función de filtrado en mi aplicación cliente que usa un folleto. Cuando agrego un CQL_FILTER (filtro de atributos, no espacial) en la consulta WMS, noté que faltan características cuando se aleja. Cuando volví a acercarme, a veces reaparecían, pero no siempre. Ver la imagen a continuación -

Comparación lado a lado

En el nivel de zoom de la izquierda, Atlanta no se muestra. Cuando me acerco, lo es. Sin embargo, a veces ni siquiera el punto en Tampa se muestra en el nivel de zoom a la izquierda. Si alejo 3 niveles más, no se mostrarán puntos. No estoy seguro de que el problema sea el parámetro CQL_FILTER, ya que con 6.500 puntos es difícil notar algunos puntos faltantes a escala global, pero el filtro particular que estoy mostrando aquí como ejemplo filtra solo a 3 características, y cuando Faltan 1 a 3 de ellos dependiendo del nivel de zoom que es particularmente notable.

Puedo recrear este mismo comportamiento en la vista previa de capa de geoserver usando el filtro CQL en las opciones de mapa avanzadas, por lo que estoy bastante seguro de que no es mi aplicación cliente.

En cuanto a mis propios pasos para depurar este problema, probé el estilo de puntos / archivo sld predeterminado para descartar mi propio estilo de capa. He desactivado todo el almacenamiento en caché que conozco. Verifiqué dos veces que mis proyecciones son correctas: creé el archivo de forma en ArcGIS 10 usando WGS_1984_Web_Mercator_Auxiliary_Sphere como la proyección, y la capa está configurada en EPSG: 3857 en geoserver, que creo que es equivalente. También actualicé de geoserver 2.2 a 2.2.1 y he tenido el mismo problema en ambos. También eliminé el archivo de índice espacial de geoserver (.qix) y dejé que se recreara ya que he visto problemas similares en Arc con índices espaciales corruptos, pero obviamente eso tampoco funcionó.

Aquí hay una instantánea de la vista previa de la capa de Geoserver con el filtro CQL activado y ampliado en la misma área que se muestra arriba. El círculo rojo es aproximadamente donde debería estar viendo otro punto (Atlanta).

Ejemplo de Openlayers

He intentado ajustar cualquier otra configuración que se me ocurra, pero no tengo suerte. También busqué los registros de geoservidor y habilité el registro detallado, y no veo ningún error / excepción. Tampoco veo ninguna solicitud incorrecta en las herramientas de desarrollador de Chrome.

Si me falta alguna información crítica, proporcionaré lo que pueda, pero esta es una aplicación interna / no pública.


1
Descartando lo obvio: ¿tienes, por casualidad, estilos dependientes de la escala? (es decir, solo se muestra un punto entre ciertas escalas)
unicoletti

1
¿Puedes verificar que los valores en VENUE_TYPE sean válidos / consistentes? Los resultados inconsistentes que está viendo podrían deberse a que las características se devuelven en un orden diferente (debido a ligeras diferencias en el bbox) y uno de ellos es 'malo' de alguna manera, lo que hace que el renderizado se detenga antes de que llegue a Atlanta. Puede ser conveniente probar exportar sus datos a un formato diferente y luego 1) verificar que todo se movió como se esperaba y luego 2) volver a probar su filtro / renderizado
tomfumb

1
@unicoletti En la capa que se muestra en la captura de pantalla, hay dependencias de escala, pero veo el mismo resultado cuando uso el estilo de "punto" predeterminado proporcionado por Geoserver, que no tiene dependencias de escala. Veo exactamente los mismos puntos que desaparecen en las mismas escalas. .
MWrenn

1
@tomfumb Revisé los valores en la columna VENUE_TYPE y todos son alfanuméricos en inglés, excepto por una barra diagonal '/' o ampersand '&'. Sacaré los registros con las barras y los símbolos y veré si eso hace la diferencia. Como nota al margen, el archivo DBF de este shapefile está codificado en UTF-8, que también configuré en geoserver. ¿Podría eso hacer una diferencia?
MWrenn

44
@MWrenn No estoy seguro, así que no intentaré responder, pero exportar los datos a otro formato debería ayudar a determinar si la tienda / formato actual es el problema. Quizás intente abrir su Shp en ArcMap o QGIS, restringiendo el área al bbox de su ejemplo, luego inspeccione los atributos de las características contenidas: ¿incluyen estos caracteres especiales que puedan verse afectados por la codificación?
Tomfumb

Respuestas:


1

La "solución" que implementé fue importar los archivos de forma en una base de datos postGIS usando shp2pqsql, que resolvió las características del punto de desaparición al usar un filtro CQL. Puedo hacer exactamente la misma solicitud de filtro CQL y ver todos los puntos en todos los niveles de zoom ahora. Luego tuve que ajustar algunos procesos automatizados para actualizar la base de datos postGIS en lugar de los archivos de forma, pero solo me llevó unas horas.

Todavía no estoy seguro de la causa raíz de las características del punto de desaparición. Intenté diferentes proyecciones y escritores de archivos de forma (QGis, ESRI, shapefile.py o pyShape o algo así) con el mismo resultado exacto cada vez. No soy un experto en geoservidor, por lo que dudo en llamarlo un error, y probablemente sea algo particular de mi configuración, pero pude reproducir en dos instancias diferentes que se ejecutan en dos computadoras diferentes de geoservidor con 2.2 y 2.2. 1, ambos en Windows (One Xp, en Server 2003).

Tampoco puedo publicar los archivos de forma fuente, así que supongo que la causa raíz seguirá siendo un misterio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.