gpt4 book ai didi

postgresql - 从边界框(内部和重叠)中提取几何图形并将结果复制到新的空数据库

转载 作者:行者123 更新时间:2023-11-29 12:52:53 40 4
gpt4 key购买 nike

我是 PostgreSQL 和 GIS 的新手。

我确实有可用的 OSM 数据(德国 map )的下载转储,它是通过 osm2pgsql 导入到 支持 PostGIS 的 PostgreSQL 数据库中的germanyPG

查询

SELECT PostGIS_Full_Version();

返回

POSTGIS="2.3.3 r15473" 
GEOS="3.6.1-CAPI-1.10.1 r4317"
PROJ="Rel. 4.9.1, 04 March 2015"
GDAL="GDAL 2.2.1, released 2017/06/23"
LIBXML="2.7.8" LIBJSON="0.12"

我还有一个空的支持 PostGIS 的 PostgreSQL 数据库 subsetGermanyPG 可用,它具有与 < strong>germanyPG 数据库。

问题一:

一旦我给出了矩形的坐标(参见图 1)。
我如何查询 germanyPG 数据库以获取位于给定矩形内或与矩形重叠的所有对象(尤其是那些比矩形大得多的对象)并将其包围(见图2)?

图 1:/image/4ZOqJ.jpg

图 2:/image/HEnvP.jpg

我不确定 ST_IntersectsST_MakeEnvelope(minLong、minLat、maxLong、max Lat、srid)的结合是否能完成这项工作,因为我没有想法如何验证查询结果...

SELECT realname
FROM domain
WHERE ST_Intersects(ST_MakeEnvelope(11.5, 49.8, 12.0, 50.1, 4326),
geom:: GEOMETRY);

问题2:

将此查询结果从 germanyPG 数据库复制到第二个数据库 subsetGermanyPG 的最优雅方法是什么?请注意,这两个数据库都在同一个远程主机系统(服务器端)上,我需要使用一个 JAVA JTS 应用程序(客户端),它分别“协调”完成复制工作。

我知道我可以使用 JAVA 查询 germanyPG 数据库,然后将查询结果存储在 JAVA 数据类型(可能是一个或多个数组?)中,并且最后将这些数据依次插入到 subsetGermanyPG 数据库中。

但是如果查询范围很广(多个 GB)并且需要很长时间怎么办?我认为这种极端情况会导致网络流量问题、主内存泄漏等。

所以我希望有一个更节省资源的解决方案?

请注意,我只能使用包含 JTS 的 JAVA 标准库。

最佳答案

对于您的第一个问题,您似乎希望说服自己您的方法有效。为此,我建议使用 QGIS 来映射您的查询结果。

对于第二个问题,听起来更简单的解决方案是通过对第一个表的查询来填充第二个表。例如,看这样的东西 https://www.mkyong.com/database/postgresql-create-table-from-exisiting-table/ .

关于postgresql - 从边界框(内部和重叠)中提取几何图形并将结果复制到新的空数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50031074/

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