将几何转换为long / lat

时间:2015-05-08 12:14:43

标签: java eclipse postgresql postgis

所以在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个扩展程序,只是想知道是否有人有想法。

1 个答案:

答案 0 :(得分:3)

格式是扩展的已知二进制文件(EWKB),这是PostGIS用于在PostgreSQL中存储geometry数据的内容。 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);}