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();
}
你知道如何在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();
}