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.