Eu tenho um shapefile com aproximadamente 6.500 pontos em todo o mundo e estou tentando servir com o Geoserver 2.2.1 usando o WMS. Aparentemente, tudo ficou bem até que eu implementei um recurso de filtragem no meu aplicativo cliente, que usa o folheto. Quando anexo um CQL_FILTER (filtro de atributo, não espacial) à consulta WMS, notei os recursos ausentes quando o zoom foi diminuído. Quando eu aumentava o zoom, eles às vezes reapareciam, mas nem sempre. Veja a imagem abaixo -
No nível de zoom à esquerda, Atlanta não é exibida. Quando eu zoom, é. No entanto, às vezes nem mesmo o ponto em Tampa é exibido no nível de zoom à esquerda. Se diminuir o zoom em mais 3 níveis, nenhum ponto será exibido. Não sei se o problema é o parâmetro CQL_FILTER, pois com 6.500 pontos, é difícil notar alguns pontos ausentes em escala global, mas o filtro específico que estou mostrando aqui como exemplo filtra apenas três recursos e quando Um a três deles estão ausentes, dependendo do nível de zoom, é particularmente perceptível.
Posso recriar esse mesmo comportamento na visualização da camada do geoserver usando o Filtro CQL nas opções avançadas de mapa, por isso tenho certeza de que não é meu aplicativo cliente.
Quanto às minhas próprias etapas de depuração desse problema, tentei o arquivo padrão style / sld do Points para descartar meu próprio estilo de camada. Eu desliguei todo o cache que eu conheço. Verifiquei duas vezes se minhas projeções estão corretas - criei o shapefile no ArcGIS 10 usando WGS_1984_Web_Mercator_Auxiliary_Sphere como projeção, e a camada está definida como EPSG: 3857 no geoserver, o que acho equivalente. Também atualizei do geoserver 2.2 para 2.2.1 e tive o mesmo problema em ambos. Também apaguei o arquivo de índice espacial do geoserver (.qix) e o deixei recriar, pois vi problemas semelhantes no Arc com índices espaciais corrompidos, mas obviamente isso também não funcionou.
Aqui está um instantâneo da visualização da própria camada do Geoserver com o Filtro CQL ativado e ampliado na mesma área como mostrado acima. O círculo vermelho é aproximadamente onde eu deveria estar vendo outro ponto (Atlanta).
Tentei ajustar todas as outras configurações em que consigo pensar, mas não estou tendo sorte. Também examinei os logs do geoserver e ativei o registro detalhado, e não vejo nenhum erro / exceção. Também não vejo solicitações ruins nas ferramentas de desenvolvedor do chrome.
Se estiver faltando alguma informação crítica, fornecerei o que puder, mas esse é um aplicativo interno / não público.
fonte
Respostas:
A "solução" que implementei foi importar os shapefiles para um banco de dados postGIS usando shp2pqsql, que resolveu os recursos do ponto de desaparecimento ao usar um filtro CQL. Posso fazer exatamente a mesma solicitação de filtro CQL e ver todos os pontos em todos os níveis de zoom agora. Tive então que ajustar alguns processos automatizados para atualizar o banco de dados postGIS em vez de shapefiles, mas levou apenas algumas horas.
Ainda não tenho certeza da causa principal dos recursos dos pontos de desaparecimento. Tentei diferentes projeções e escritores de shapefile (QGis, ESRI, shapefile.py ou pyShape ou algo assim) com o mesmo resultado exato todas as vezes. Eu não sou especialista em geoserver, por isso hesito em chamá-lo de bug, e provavelmente é algo específico da minha configuração, mas consegui reproduzir em duas instâncias diferentes executando em dois computadores diferentes do geoserver executando 2.2 e 2.2. 1, ambos no Windows (One Xp, no Server 2003).
Também não sou capaz de postar os shapefiles de origem, então acho que a causa raiz continuará sendo um mistério.
fonte