我想在Oracle DBMS中发布数据。
由于数据的SRS (即EPSG:3093)不同于客户机所需的SRS (即EPSG:5179),所以必须对其进行转换。
因此,我已经将Edit页面上的layer属性设置为:
问题现在开始了。
当我为本机边界框单击“Compute from data”时,它会在声明的SRS中显示结果坐标,而不是本机SRS。
这行为正确吗?因为它是“本机边界框”,所以值应该在本机SRS中。
无论如何,当我单击Lat/Lon边界框的“从本地边界计算”时,它将正确地从“声明的SRS”中翻译出来。也许在声明的SRS中显示本机边界框是正确的。(奇怪)
无论如何,客户端(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列表页面上看到EPEG:3093的覆盖区域时,这个区域似乎是错误的。(它甚至没有覆盖东京!) http://epsg.io/3093显示的是正确的。
这是缓存问题的原因吗?
GeoWebCache是否查找SRS的覆盖范围并拒绝超出限制的请求?
我的GeoServer版本是2.7.1.1。
发布于 2015-10-08 00:05:49
我已经跟踪了从GridSubset.java到GeoServerTileLayer.java的源代码,并发现gwc层文件的内容有错误的gridSubset范围和minY值。(太高了)
我不知道为什么。由于我使用Git管理gwc层文件,可能是一些文件日期不一致使GeoServer无法同步这些值。或者我只是弄坏了什么东西。我只能猜..。现在,在更改该值之后,缓存就可以工作了。
发布于 2015-09-15 06:19:50
您应该将数据存储在本机投影中,因为当客户端在不同的投影中提出请求时,GeoServer将自动重新设计数据。
然后缓存和bbox就可以工作了。
https://stackoverflow.com/questions/32556665
复制相似问题