首页 > 解决方案 > 如何使用 JDBC 将多边形插入 PostGIS

问题描述

我将多边形作为一组点。(文本或 JSON 表示)

我需要执行以下操作:

1) 使用 JDBC 将多边形插入 PostGIS

2)我得到一个对象坐标(点),我需要检查这个点是否在多边形内。

我看到了不同的例子,但我没有找到任何使用 JDBC ( Java ) 的例子。

您能否分享一下简单的 java 代码片段或指向我已经存在的示例。

注意我的多边形不是一个循环

谢谢奥列格。

标签: javajdbcpolygonpostgis

解决方案


您可以使用经典的 JDBC 调用,主要区别在于您编写的 PL/SQL 和使用的输入/输出格式。

1.构造Java geom对象

  • Postgis 可以读取某些格式(参见 2.)。因此,应该使用可以以这种格式之一导出的 java 对象。
  • 阅读器可以直接读取输入(例如文件或字符串)。

例子:org.locationtech.jts.io

  • 也可以自己构建几何对象并将它们转换为正确的格式。

示例:查看org.locationtech.jts.geom类和org.locationtech.jts.geom.Geometry.toText()(导出为 WKT 格式)

2.插入数据

您可以使用 Postgis Geometry Constructors使用您的数据格式来构造对象。有多种可用格式:WKT、EWKT、GeoJSON、GML、KML 等。例如:

INSERT INTO table(geom) VALUES ST_GeomFromEWKT(?)

3. 获取包含点的多边形

您可以使用 Postgis空间关系和测量功能。在您的情况下, ST_ContainsST_Intersects可能是准确的。

SELECT geom FROM table WHERE ST_Contains(geom, ST_GeomFromEWKT(?))

推荐阅读