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

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

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

type: geography
value: 0101000020E6100000C006335CD3043840504BBDB89EC14140

如何将这个数字转换成点数?

你是说 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

我的解决方案如下,效果很好,但我认为你的解决方案更好

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