首页 文章

GeoServer:重新投影时缓存失败

提问于
浏览
2

我想在Oracle DBMS中发布数据 .

由于数据的SRS(EPSG:3093)与客户想要的SRS(EPSG:5179)不同,因此必须对其进行转换 .

所以,我在Edit Layer页面上设置了layer属性,如下所示:

  • 原生SRS:EPSG:3093(东京/ UTM区52N)

  • 宣布SRS:EPSG:5179(韩国2000 /统一CS)

  • SRS处理:将原生重新投影到已声明的

问题现在开始了 .

当我单击“从数据计算”本机边界框时,它会在声明的SRS中显示结果坐标,而不显示本机SRS .

这是正确的行为吗?由于它是“Native Bounding Box”,因此值应该在Native SRS中 .

无论如何,当我点击“从本地边界计算”Lat / Lon Bounding Box时,它正确地从“声明的SRS”转换 . 也许在声明的SRS中显示Native Bounding Box是正确的 . (奇怪的)

无论如何,客户端(OpenLayers 3)正确显示数据 .

但另一个问题仍然存在

集成的GeoWebCache拒绝缓存切片图像 .

当日志记录设置为VERBOSE_LOGGING时,它会记录以下错误: org.geowebcache.grid.OutsideCoverageException: Coverage [minx,miny,maxx,maxy] is [0, 4097, 6143, 6143, 11], index [x,y,z] is [3101, 2791, 11]

由于缓存对于不转换源数据的其他层正常工作(因为数据已经在EPSG:5179中),这必然是转换问题 . 或另一个 .

当我在GeoServer上的Demos / SRS List页面上看到EPEG的覆盖区域:3093时,该区域似乎是错误的 . (它甚至不包括东京!)http://epsg.io/3093显示正确的一个 .

这是缓存问题的原因吗?

GeoWebCache是否会查找SRS的覆盖范围并拒绝超出范围的请求?

我的GeoServer版本是2.7.1.1 .

2 回答

  • 0

    您应该将数据存储在本机投影中,因为当客户端在不同的投影中发出请求时,GeoServer将自动重新投影数据 .

    然后缓存和bbox将工作 .

  • 0

    我已经将GridSubset.java中的源代码跟踪到GeoServerTileLayer.java,发现gwc-layers图层文件的内容有错误的gridSubset范围coords minY值 . (太高了)

    我不知道为什么......由于我使用Git管理gwc层图层文件,可能一些文件日期不一致使GeoServer混淆了值 . 或许我只是打破了一些东西 . 我只能猜测......现在改变了这个值后,缓存就可以了 .

相关问题