gpt4 book ai didi

java - 尝试计算大图层的 native 边界框时地理服务器超时

转载 作者:行者123 更新时间:2023-11-30 02:41:02 25 4
gpt4 key购买 nike

我正在开发一个项目,涉及连接到外部 Oracle 数据库作为数据存储。我正在尝试根据 oracle store 中的数据库 View 向 Geoserver 添加多个层。

多层就可以了:除了单击“从数据计算”来计算 native 边界框坐标(minX、minY、maxX、maxY)时出现相当大的延迟外,几个 View 的摄取效果良好。后台任务似乎在大约 2-10 分钟后完成。这很好...

问题:有一些非常大的 View 在单击“从数据计算”后未完成。该过程似乎超时。我已附上显示此问题的屏幕截图。即,旋转器消失,但边界坐标仍为空白。

有人以前遇到过这个吗?我尝试增加 Jetty http.timeout 和threads.timeout,没有成功。

进度旋转器出现在右上角,指示计算正在进行,它将旋转大约 15 分钟,然后消失,坐标框保持空白。它只是停止而没有错误 - 我已经检查了日志文件。

该服务器在具有充足内存的 centos 7 机器上运行。 Geoserver 本身使用 3GB 内存运行。

你有过这样的经历吗?

此外,我正在考虑根据从 oracle View 导出的 CSV(根据所有几何值计算)手动计算这些边界框值。我可以使用 JTS 等 java 包,有更好的方法吗?

https://en.wikipedia.org/wiki/JTS_Topology_Suite

感谢任何帮助。

enter image description here

enter image description here

enter image description here

最佳答案

简单的答案是,Oracle 空间在以一般方式使用时很糟糕,因为 GeoServer 被设计为与许多数据库一起工作,它在其数据库访问代码中不能有(许多)空间加速技巧。一个好的数据库(例如 PostGIS)总是很快,只有当您使用基于本地知识的提示手动调整它时,Oracle 才会很快。您没有说明您正在使用哪个版本的 GeoServer,但最新版本可能会比旧版本更快。

要计算表的边界,您可以使用以下方法向 Oracle 请求:

SELECT SDO_TUNE.EXTENT_OF('TABLE_NAME', 'SPATIAL_COLUMN');

select sdo_aggr_mbr(MY_GEOMETRY) from MY_TABLE;

这个questionGIS stackexchange site讨论调整这些查询。

关于java - 尝试计算大图层的 native 边界框时地理服务器超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41690019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com