GeoWebCache: désalignement des tuiles

9

J'essaie de tester une carte Web simple basée sur la pile PostGIS / Geoserver / OpenLayers sur Windows Server 2008.

Lorsque je charge ma couche WMS par:

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}

);

Tout semble aller bien.

texte alternatif

Cependant, lorsque j'essaie d'ajouter une couche WMS à ma carte à l'aide de GeoWebCache, en remplaçant

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

avec:

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

Mes données se déplacent soudainement de la position correcte:

texte alternatif

Des idées sur ce qui pourrait être la cause?

EDIT: quelques informations supplémentaires sur la liste de diffusion GWC poste .

radek
la source
1
Cela ressemble à un problème de décalage de datum. Vous devrez peut-être modifier vos paramètres de projection to_wgs si votre wms est reprojeté. trac.osgeo.org/proj/wiki/…
geographika
@geographika: Pourquoi alors la même couche s'afficherait-elle correctement sans le mode GWC?
radek
1
Il utilise un fichier de configuration différent pour les projections? Voir geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache
geographika
@geographika: Je suppose que c'est une ancienne version des documents GeoServer. Version plus récente: geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache . Ma page de configuration GeoWebCache indique que les tuiles sont prêtes dans la projection 3857, et ceci est également utilisé par ma carte Web.
radek du
avez-vous déjà résolu votre problème? J'ai un problème similaire avec un changement plus important. Je vois ce geographika talsk à propos d'un message avec des causes finales dans le forum GWC, mais je ne trouve pas ce message.
user28386

Réponses:

4

Mise à jour

Voir les réponses au message de Radek sur le forum GWC pour la cause réelle et la solution. Je comprends maintenant pourquoi TileCache a choisi d'afficher des erreurs telles que "La valeur x actuelle -1311047.936977 est trop éloignée du coin de la tuile x -1493907.560000" plutôt que de renvoyer les tuiles "les plus proches" dans une plage d'erreur arbitraire.


Vos données d'origine sont-elles dans EPSG 3857? Si ce n'est pas le cas, il s'agit presque certainement d'un décalage de données qui ne se produit pas quelque part.

Essayez de changer votre définition d'OpenLayers en référence à EPSG: 900913 - peut-être que GeoWebCache ne reconnaît pas le nouveau code Web Mercator?

À partir du lien que vous avez publié:

La version intégrée de GeoWebCache configure automatiquement chaque couche avec les deux projections les plus courantes:

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

Si vous avez besoin de projections supplémentaires, vous pouvez créer un fichier de configuration appelé geowebcache.xml dans le répertoire cache, par exemple /var/geoserver_data/gwc/geowebcache.xml

Cela ressemble à si Geoserver et GeoWebCache utilisent des fichiers de projection différents. Peut-être que votre Geoserver a un paramètre to_wgs et pas GWC.

Lorsque vous êtes sous Windows, exécutez Process Monitor - http://technet.microsoft.com/en-us/sysinternals/bb896645 pour voir les fichiers auxquels vous accédez réellement.

Je suppose également que les images n'ont pas été mises en cache après avoir modifié certains paramètres de projection? Essayez de réamorcer / supprimer pour vérifier.

geographika
la source
Merci. Oui, les données originales sont en 3857. On dirait que GWC reconnaît ce code: dans la section Démos GWC, il y a les trois projections disponibles à utiliser: 3857, 4326, 900913. Et pour les besoins de ma carte, j'utilise 3857. Aussi essayé avec 900913 et l'erreur reste.
radek
Si vos données d'origine sont en 3857 sans décalage de données, j'imagine qu'aucune reprojection n'a lieu dans GWC, et vos données d'origine doivent être reprojetées à nouveau.
geographika
4

Avez-vous le bon ensemble d'origine de tuiles pour votre OpenLayers.Map comme dans GeoWebCache. Vérifiez comment TileOrigin est défini dans la démonstration GeoWebCache du calque et assurez-vous que vous avez le même TileOrigin sur votre constructeur OpenLayers.Map.

Peter
la source
Merci. J'ai essayé de le définir comme: "tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom" où maxExtent est défini en fonction de la démonstration GWC de la couche. Toujours pas correct.
radek
Quels sont vos paramètres GWC, vous devrez peut-être ajuster les paramètres DPI dans GWC ou OpenLayers
Peter
J'ai essayé d'ajuster les paramètres DPI en fonction de l'aperçu de démonstration GWC de la couche. Ça n'a pas aidé.
radek
3

Un tel désalignement est presque toujours un problème de projection. Les données sont-elles stockées dans EPSG: 3857? Vérifiez que la couche GeoWebCache est configurée pour sortir dans EPSG: 3857.

Sean
la source
Oui, l'ensemble de données est en 3857 et GWC est également configuré pour cela.
radek
2

Avez-vous essayé de vider le cache?

Dave Lowther
la source
Oui je l'ai fait.
radek