我应该如何发送Postgis几何数据? WKT还是WKB?

时间:2018-12-12 16:52:26

标签: java postgresql postgis jts

我需要使用Java在两个PostGIS数据库之间进行集成。我将收到一个JSON文件,它的每一行代表一个表的记录。一些表具有几何列。

我应该以PostGIS WKB十六进制表示形式还是WKT形式接收此几何数据? PostGIS表示形式更紧凑,并且JTS可以两种方式对其进行解析,因此似乎最好以该格式发送数据,但是我看到的大多数示例都是通过WKT完成的,因此真的不确定最好的方法。

我应该以WKB还是WKT的形式发送数据?

2 个答案:

答案 0 :(得分:0)

发送方式实际上没有任何区别。那将在很大程度上取决于带宽要求。如果这是一个Web应用程序,则可能需要较小的表示形式。

但是您也可以使用JSON。 JTS可能还可以从JSON导入几何。

无论您选择什么,都请留意有关3d几何形状的一些规格。一些解析器会放弃z组件以符合规范(我几年前在Django上也遇到过类似的问题,但这实际上是一个错误)。

答案 1 :(得分:0)

要查看的一个选项是使用dblink直接查询另一个PostGIS数据库,而不是先进行导出然后再进行导入。

从文档中

  

dblink在远程数据库中执行查询(通常是SELECT,但可以是返回行的任何SQL语句)。

因此,您可以从一个类似于以下数据库的数据库发送查询:

SELECT * 
FROM dblink('connection_string_to_other_db', 'sql_query');

然后您将在运行查询的数据库中收到这些行。

我不知道这是否是您要寻找的,但这是一种将数据从一个PostgreSQL数据库获取到另一个PostgreSQL的非常简单的方法。