所以在 PostgreSQL 中,我有一堆 long/lat 的几何值,其格式如下:
0101000020E610000095B9F94674CF37C09CBF0985083B5040
所以在 Postgres 中,我可以进行一个选择查询来格式化所有 Ex。
SELECT ST_AsText(position_geom)FROM reports;
所以我在 eclipse
中安装了 postgreSQL 和 PostGIS JDBC 驱动程序,我想我可以做一些类似于
rs = stmt.executeQuery("SELECT ST_AsText(*)FROM reports");
while(rs.next()){
String geomVal = rs.getString("position_geom");
System.out.println(geomVal);}
但是我得到一个错误:
function st_astext() does not exist.
我已经导入了所有的 postGIS
扩展,只是想知道是否有人有想法。
最佳答案
格式为扩展知名二进制 (EWKB),这是 PostGIS 在 PostgreSQL 中用于存储 geometry
数据的格式。 ST_AsText()
函数将其转换为 Well-Known Text (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);}
关于java - 将几何转换为经/纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30123621/