大型数据不会加载到GeoServer中

时间:2013-05-28 00:06:12

标签: google-maps geoserver

我正在尝试将一个500MB的形状文件加载到GeoServer中,并让它在合理的时间范围内响应客户端请求(即使在等待30分钟后它仍然没有响应)。我希望它能提供图像拼贴;我正在使用Google Maps API v3 ImageMapType使用GeoServer WMS URL自动请求正确的切片。该层由数十万个用于沿海塔斯马尼亚的多边形组成 - 因此该层非常稀疏。我试过了:

  • 创建切片缓存(但ETA在缩放范围13到18年内为15年)并且会创建大量空白切片(估计为> 95%)
  • 在加载到GeoServer之前删除图层中的所有属性(仍然等待一小时才能开始播种图块缓存但仍然没有进展)
  • 合并多边形,以便图层中只有10个多边形(相同的行为)
  • 使用切片缓存中的bounds选项(相同行为)
  • [edit]将图层重新投影到EPSG:900913(相同行为)
  • 将图层分割成12个部分以减少空白区域,将它们作为图层组加载,并从中为平铺缓存播种(即使其中1个图层也不会开始播种 - 仍然太大了?)

我们正在研究的下一个选项是将图层分成1公里网格,并将所有8000个图层作为图层组加载。我怀疑这会奏效。然而,当播种缓存时,这些层中的一个DID工作 - 并且所有缩放级别只需要几秒钟。

如何让GeoServer提供大量稀疏数据?其他人肯定有这个问题吗?我是否需要对图层本身做一些特别的事情?或者我应该在GeoServer中配置什么?

1 个答案:

答案 0 :(得分:5)

首先:除非你十年前购买了硬件,否则500MB的地图应该是GeoServer的花生。我每天都使用更大的数据集。

也许您让GeoServer直接从磁盘访问shapefile?

我建议使用以下设置:

  • 确保安装了足够的RAM。我刚看到我可以以低于80欧元的价格购买24GB。这应该足以完全缓存您的数据库;

  • 使用PostGIS扩展安装Postgres;

  • 为了确保不需要重新投影,您可以将所有坐标预转换为Google的marcator投影(EPSG:9009l3);

  • 确保几何列上有空间索引;

  • 如果您的地图是静态的,则可以预渲染切片。这实际上将是性能的一大提升。尝试找到您可以在合理的时间内预渲染的缩放级别。放大的图像通常更快,因为创建图像所涉及的元素更少;

此外,如果花了30分钟,我怀疑你会得到一个结果。至少网络服务器在此之前已经超时了。通过粘贴URL手动下载图像。如果您没有看到图片,请在文本编辑器中打开下载的图像:图片文件中可能存在文本错误消息,而不是二进制数据。该错误消息通常描述问题所在。