PreparestatementでPostGISにGeometryデータをINSERT
移転しました。
ソース例
String sql = "INSERT INTO HOGE_TBL (GEOMETRY_COL) VALUES (GeomFromText(?, -1))"; Connection con = ConnectionManager.getInstance().getConnection(); PreparedStatement pstmt = con.prepareStatement(sql); Point point = (Point)dto.getPgGeometry().getGeometry(); pstmt.setString(cnt,"POINT(" + point.getX() + " " + point.getY() + ")"); pstmt.executeUpdate();
INSERT文
-- 座標列の生成 SELECT AddGeometryColumn('testgis', 'geoaddr','location',4326,'POINT',3); SELECT AddGeometryColumn('testgis', 'geoaddr','bound',4326,'LINESTRING',2); SELECT AddGeometryColumn('testgis','geoaddr','shape',4326,'POLYGON',2); -- データ挿入 -- POLYGONはリング(指定した点同士を結ぶと、四角や三角などの閉じた図形)が閉じていないとエラーになることに注意。 INSERT INTO geoaddr ( location, bound, shape ) VALUES ( GeometryFromText('POINT(-48109.39844 -140907.90625 0)', 4326), GeometryFromText('LINESTRING(1 2,3 4)', 4326), GeometryFromText( 'POLYGON((191232 243117,191232 243119,191234 243117,191232 243117), (191232 243117,191232 243119,191234 243117,191232 243117))', 4326) );