org.postgresql.util.PGobject to org.postgis.Point;

时间:2016-06-19 23:49:03

标签: java postgresql postgis sqlgeography

你知道如何将PGobject的类型转换为Java中的Point吗? 实际上PGobject是这样的对象: PGobject地理定位:

type: geography
value: 0101000020E6100000C006335CD3043840504BBDB89EC14140

如何将此数字转换为Point?

2 个答案:

答案 0 :(得分:2)

你的意思是jts点吗?

如果是,请使用WkbReader,因为您的几何图形为well-know-binary格式:

import com.vividsolutions.jts.io.WKBReader;


WKBReader wkbReader = new WKBReader();
byte[] geom = wkbReader.hexToBytes('0101000020E6100000C006335CD3043840504BBDB89EC14140');
System.out.println(wkbReader.read(geom));     
// prints POINT (24.01885010000001 35.5126563)

结果类型为com.vividsolutions.jts.geom.Point

答案 1 :(得分:2)

我的解决方案如下,它运行正常,但我认为您的解决方案更好

String g = geolocation.getValue();
try {
    Geometry fr = new PGgeometry().geomFromString(g);
    Point p = fr.getPoint(0);
    this.geolocation = p;
} catch (SQLException e) {
    e.printStackTrace();
}