大型数据不会加载到GeoServer中

Stu*_*art 2 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个图层也不会开始播种 - 仍然太大了?)

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

如何让GeoServer提供这种大型稀疏数据? 当然其他人有这个问题吗?我是否需要对图层本身做一些特别的事情?或者我应该配置GeoServer中的某些东西?

Wou*_*ick 5

开始:一个500MB的地图应该是GeoServer的花生,除非你十多年前买了你的硬件.我每天使用更大的数据集.

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

我建议使用以下设置:

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

  • 使用PostGIS扩展安装Postgres;

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

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

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

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