1

我需要将 PostgreSQL 的几何(MultiPolygon)类型变量存储到 java 变量中,这是因为我试图将几何列添加到非空间表中以使用 mapserver 查询地图

我试图将它存储在一个导致错误的字符串中。

请建议我使用 Java 中的数据类型,以便我可以将值存储在空间数据库的几何列中。

这是我的代码片段:

    String query="select geom from apmandal where mandalname='"+mname+"'";
    ResultSet rs=st.executeQuery(query);
    rs.next();
    Geometry geomval=rs.getXXX();

请建议一个 getXXX() 方法,以便我可以检索几何列值

提前致谢

从评论编辑:

String query = "select geom from apmandal order by area desc;"; 
ResultSet rs = st0.executeQuery(query); 
rs.next(); 
String geomval = rs.getString(1).toString(); 
String newquery = "insert into test(mname, geom) values('ZAHEERABAD','"+geomval+"');"; 
int tel = st1.executeUpdate(newquery); 
System.out.println("inserted "+tel+" record");
4

1 回答 1

1

您可以简单地转换为text表示:

String query="select geom::text from apmandal where mandalname='"+mname+"'";

然后你可以像对待任何其他文本一样对待它。
我在这里引用PostGIS 手册

至少从 PostgreSQL 8.3 开始 - 一切都可以 CAST 到文本(大概是因为神奇的未知类型),所以没有定义的 CASTS 需要为您提供将对象转换为文本。

于 2012-12-26T20:02:55.430 回答