将几何图形转换为长/纬度

guy*_*sei 2 java eclipse postgresql postgis

所以在 PostgreSQL 中,我有一堆长/纬度的几何值,其格式如下:

0101000020E610000095B9F94674CF37C09CBF0985083B5040 
Run Code Online (Sandbox Code Playgroud)

因此,在 Postgres 中,我可以进行一个选择查询来格式化所有内容。

SELECT ST_AsText(position_geom)FROM reports;
Run Code Online (Sandbox Code Playgroud)

所以我安装了 postgreSQL 和 PostGIS JDBC 驱动程序eclipse,并认为我可以做类似的事情

rs = stmt.executeQuery("SELECT ST_AsText(*)FROM reports");
while(rs.next()){
String geomVal = rs.getString("position_geom"); 
System.out.println(geomVal);} 
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

function st_astext() does not exist.
Run Code Online (Sandbox Code Playgroud)

我已经导入了所有postGIS扩展,只是想知道是否有人有想法。

Pat*_*ick 5

该格式是扩展众所周知的二进制 (EWKB),PostGIS 使用该格式geometry在 PostgreSQL 中存储数据。该ST_AsText()函数将其转换为众所周知的文本 (WKT) 格式。

ST_AsText()函数需要具有数据类型的单个列geometry。因此,按如下方式更改您的代码:

rs = stmt.executeQuery("SELECT ST_AsText(position_geom) AS position_txt FROM reports");
while(rs.next()){ 
String geomVal = rs.getString("position_txt"); 
System.out.println(geomVal);}
Run Code Online (Sandbox Code Playgroud)