我正在尝试将一个500MB的形状文件加载到GeoServer中,并让它在合理的时间范围内响应客户端请求(即使在等待30分钟后它仍然没有响应)。我希望它能提供图像拼贴;我正在使用Google Maps API v3 ImageMapType使用GeoServer WMS URL自动请求正确的切片。该层由数十万个用于沿海塔斯马尼亚的多边形组成 - 因此该层非常稀疏。我试过了:
我们正在研究的下一个选项是将图层分成1公里网格,并将所有8000个图层作为图层组加载。我怀疑这会奏效。然而,当播种缓存时,这些层中的一个DID工作 - 并且所有缩放级别只需要几秒钟。
如何让GeoServer提供大量稀疏数据?其他人肯定有这个问题吗?我是否需要对图层本身做一些特别的事情?或者我应该在GeoServer中配置什么?
答案 0 :(得分:5)
首先:除非你十年前购买了硬件,否则500MB的地图应该是GeoServer的花生。我每天都使用更大的数据集。
也许您让GeoServer直接从磁盘访问shapefile?
我建议使用以下设置:
确保安装了足够的RAM。我刚看到我可以以低于80欧元的价格购买24GB。这应该足以完全缓存您的数据库;
使用PostGIS扩展安装Postgres;
为了确保不需要重新投影,您可以将所有坐标预转换为Google的marcator投影(EPSG:9009l3);
确保几何列上有空间索引;
如果您的地图是静态的,则可以预渲染切片。这实际上将是性能的一大提升。尝试找到您可以在合理的时间内预渲染的缩放级别。放大的图像通常更快,因为创建图像所涉及的元素更少;
此外,如果花了30分钟,我怀疑你会得到一个结果。至少网络服务器在此之前已经超时了。通过粘贴URL手动下载图像。如果您没有看到图片,请在文本编辑器中打开下载的图像:图片文件中可能存在文本错误消息,而不是二进制数据。该错误消息通常描述问题所在。