GeoWebCache: desalinhamento de blocos


9

Estou tentando testar um mapa da web simples com base na pilha PostGIS / Geoserver / OpenLayers no Windows Server 2008.

Quando carrego minha camada WMS:

var gwctest = new OpenLayers.Layer.WMS(
    "gwctest",
    "http://localhost:1979/geoserver/wms",
    {
    'layers': 'Index2000:index_vect_s100',
    'format': 'image/png',
    'srs': 'EPSG:3857', 
    'units': 'm',
    'transparent': true
    },
    {'opacity': 0.8, 'isBaseLayer': false, 'visibility': false}

);

Tudo parece estar bem.

texto alternativo

No entanto, quando tento adicionar a camada WMS ao meu mapa usando o GeoWebCache, substituindo

"http://localhost:1979/geoserver/wms"

com:

"http://localhost:1979/geoserver/gwc/service/wms"

Meus dados repentinamente passam da posição correta:

texto alternativo

Alguma idéia sobre qual pode ser a causa?

EDIT: algumas informações adicionais sobre GWC lista de discussão pós .


11
Parece um problema de mudança de dados. Pode ser necessário editar seus parâmetros de projeção para_wgs se seu wms estiver sendo reprojetado. trac.osgeo.org/proj/wiki/…
geographika

@geographika: Por que a mesma camada seria exibida corretamente sem o modo GWC?
Radek

11
Ele usa um arquivo de configuração diferente para projeções? Veja geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika

@geographika: Presumo que seja uma versão antiga dos documentos do GeoServer. Versão mais recente: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . Minha página de configuração do GeoWebCache diz que os blocos estão prontos na projeção 3857, e esse é o proj usado também pelo meu mapa da web.
Radek

você já resolveu seu problema? Estou tendo um problema semelhante com uma mudança maior. Eu vejo a geographika falando sobre um post com solução final de causas no fórum da GWC, mas não encontro esse post.
user28386

Respostas:


4

Atualizar

Veja as respostas à postagem de Radek no fórum da GWC para obter causas e soluções reais. Agora entendo por que o TileCache optou por exibir erros como "O valor atual x -1311047.936977 está muito longe do canto do bloco x -1493907.560000" em vez de retornar os blocos "mais próximos" dentro de um intervalo de erros arbitrários.


Seus dados originais estão no EPSG 3857? Caso contrário, é quase certamente uma mudança de dados (não) acontecendo em algum lugar.

Tente alterar sua definição de OpenLayers para fazer referência ao EPSG: 900913 - talvez o GeoWebCache não reconheça o novo código de comerciante da web?

No link que você postou:

A versão integrada do GeoWebCache configura automaticamente todas as camadas com as duas projeções mais comuns:

* EPSG:4326 (standard Latitude/Longitude)
* EPSG:900913 (Spherical Mercator, the projection used in Google Maps)

Se você precisar de projeções adicionais, poderá criar um arquivo de configuração chamado geowebcache.xml no diretório de cache, por exemplo /var/geoserver_data/gwc/geowebcache.xml

Parece que o Geoserver e o GeoWebCache usam arquivos de projeção diferentes. Talvez o seu Geoserver tenha um parâmetro to_wgs e o GWC não.

Como você está no Windows, execute o Process Monitor - http://technet.microsoft.com/en-us/sysinternals/bb896645 para ver quais arquivos você realmente está acessando.

Também presumo que as imagens não foram armazenadas em cache depois que você alterou alguns parâmetros de projeção? Tente reenviar / excluir para verificar.


Obrigado. Sim, os dados originais estão em 3857. Parece que o GWC reconhece este código: na seção Demos do GWC, existem todas as três projeções disponíveis para uso: 3857, 4326, 900913. E, para os fins do meu mapa, estou usando o 3857. Também tentei com 900913 e o erro permanece.
Radek

Se seus dados originais estiverem em 3857 sem uma mudança de dado, imagino que nenhuma reprojeção ocorra no GWC e seus dados originais precisem ser reprojetados novamente.
Geografika

4

Você tem a origem de bloco correta definida para o seu OpenLayers.Map como no GeoWebCache. Verifique como o TileOrigin está definido na demonstração GeoWebCache da camada e verifique se você tem o mesmo TileOrigin no seu OpenLayers.Map Constructor.


Obrigado. Tentei defini-lo como: "tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom", em que maxExtent é definido de acordo com a demonstração GWC da camada. Ainda não está correto.
Radek

Quais são as suas configurações GWC, você pode precisar ajustar configurações de DPI em qualquer GWC ou OpenLayers
Peter

Tentei ajustar as configurações de DPI de acordo com a visualização de demonstração da camada GWC. Não ajudou.
Radek

3

Desalinhamentos como esse são quase sempre uma questão de projeção. Os dados estão armazenados no EPSG: 3857? Verifique se a camada GeoWebCache está configurada para saída no EPSG: 3857.


Sim, o conjunto de dados está em 3857 e o GWC também está configurado para ele.
Radek

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.