2014-03-12 1 views
1

PostGIS 기하학 열을 읽고 최대 절전 모드로 Java byte[]으로 저장하려고합니다.Postgres 지오메트리를 최대 절전 모드에서 바이트 []로 읽는 중입니까?

내가 아는 한은 psql에 표현 된대로 Java에 저장해야합니다.

는 내가 쓰고도 psql 내에서 그것을보고 관리하지만 난 wkbreader 그것을 읽을 때 - 나는 다음과 같은 오류 얻을 :

com.vividsolutions.jts.io.ParseException: Unknown WKB type 48

답변

2

PostGIS와 exports a ST_AsBinary function 또는 (당신이 SRID를 보존하려는 경우) ST_AsEWKB을.

디스플레이 표현을 캐스팅하지 않고 ST_GeomFromWKB 또는 ST_GeomFromEWKB을로드해야합니다 (출력시 AsBinary 또는 AsEWKB 형식을 사용했는지 여부에 따라 다름).

1

JDBC 드라이버 버전을 업그레이드하면이 오류가 해결 된 것으로 나타났습니다. 나는 다음과 JTS에 PostGIS와 형상을 읽을 수 수 있어요 :

검색어 :

SELECT ST_AsBinary(geom) FROM mytable; 

코드 :

// myWKBReader is a JTS WKBReader 
// myResultSet is a JDBC ResultSet 
Geometry geom = myWKBReader.read(myResultSet.getBytes("st_asbinary")); 

POM :

<dependency> 
    <groupId>org.postgresql</groupId> 
    <artifactId>postgresql</artifactId> 
    <version>9.2-1003-jdbc4</version> 
    </dependency> 
0

실행이 명령 Postgres로

ALTER DATABASE table SET bytea_output TO 'escape'; 

그런 다음 Postgres를 다시 시작하십시오.

관련 문제