GeoWebCache:瓷砖未对齐


9

我正在尝试测试基于Windows Server 2008上的PostGIS / Geoserver / OpenLayers堆栈的简单Web地图。

当我通过以下方式加载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}

);

一切似乎都很好。

替代文字

但是,当我尝试使用GeoWebCache将WMS图层添加到地图中时,

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

与:

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

我的数据突然从正确的位置移动:

替代文字

关于可能的原因有什么想法?

编辑:有关GWC邮件列表帖子的一些其他信息。


1
看起来像是基准偏移问题。如果正在重新投影wms,则可能需要编辑对to_wgs的投影参数。trac.osgeo.org/proj/wiki/…–
geographika

@geographika:那为什么在没有GWC模式的情况下,同一图层会正确显示呢?
radek 2010年

1
它使用不同的配置文件进行投影吗?参见geoserver.org/display/GEOSDOC/5。+GWC+-+GeoWebCache–
geographika

@geographika:我认为它是GeoServer文档的旧版本。较新的版本:geoserver.org/display/GEOSDOC/5.+GWC+-+GeoWebCache。我的GeoWebCache配置页面说,磁贴已在3857投影中准备好了,这也是我的网络地图使用的项目。
radek 2010年

你有没有解决你的问题?我有一个类似的问题,但变化更大。我在GWC论坛上看到geographika talsk关于原因终止解决方案的帖子,但我找不到该帖子。
user28386 2015年

Answers:


4

更新资料

有关实际原因和解决方案,请参阅GWC论坛中对Radek帖子的回复。我现在了解为什么TileCache选择显示错误,例如“当前x值-1311047.936977离瓦片角x -1493907.560000太远”,而不是返回任意误差范围内的“最近”瓦片。


您的原始数据是在EPSG 3857中吗?如果没有,那几乎可以肯定是某处发生了基准位移(没有)。

尝试更改您的OpenLayers定义以引用EPSG:900913-也许GeoWebCache无法识别新的Web墨卡托代码?

通过您发布的链接:

GeoWebCache的集成版本会自动为每个图层配置两个最常见的投影:

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

如果需要其他投影,可以在缓存目录中创建一个名为geowebcache.xml的配置文件,例如/var/geoserver_data/gwc/geowebcache.xml。

听起来好像Geoserver和GeoWebCache使用不同的投影文件。也许您的Geoserver有一个to_wgs参数,而GWC没有。

当您在Windows上时,请运行Process Monitor- http://technet.microsoft.com/zh-cn/sysinternals/bb896645,以查看您真正要访问的文件。

我还假设您更改了某些投影参数后没有缓存图像吗?尝试重新播种/删除以进行检查。


谢谢。是的,原始数据是在3857中。似乎GWC可以识别此代码:在GWC演示部分中,可以使用所有三种投影:3857、4326、900913。就我的地图而言,我正在使用3857。 900913,错误仍然存​​在。
radek 2010年

如果您的原始数据是在3857年没有基准移动,那么我想在GWC中不会发生任何重新投影,并且您的原始数据需要再次重新投影。
geographika 2010年

4

是否为您的OpenLayers.Map设置了正确的图块来源,如GeoWebCache中那样。检查如何在图层的GeoWebCache-demo中设置TileOrigin,并确保OpenLayers.Map构造函数上具有相同的TileOrigin。


谢谢。我尝试将其设置为:“ tilesOrigin:map.maxExtent.left +','+ map.maxExtent.bottom”,其中,根据图层的GWC演示设置了maxExtent。仍然不正确。
radek 2010年

您的GWC设置是什么,您可能需要在GWC或OpenLayers中调整DPI设置
Peter 2010年

我尝试根据该图层的GWC演示预览调整DPI设置。没帮助
radek 2010年

3

诸如此类的错位几乎总是一个投影问题。数据是否存储在EPSG:3857中?检查是否已将GeoWebCache层配置为在EPSG:3857中输出。


是的,数据集位于3857中,并且也为其配置了GWC。
radek 2010年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.