1

PostgreSQLのgeometry(MultiPolygon)型変数をJava変数に格納する必要があります。これは、mapserverを使用してマップをクエリするためにgeometry列を非空間テーブルに追加しようとしているためです。

エラーの原因となった文字列に保存しようとしました。

空間データベースのジオメトリ列に値を格納できるように、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マニュアル
を引用します:

少なくともPostgreSQL8.3の時点では、すべてがテキストにキャストされる可能性があるため(おそらく、魔法の未知のタイプのため)、オブジェクトをテキストにキャストするために、そのために定義されたCASTSが存在する必要はありません。

于 2012-12-26T20:02:55.430 に答える