几天以来,我一直在为 WKB 字符串苦苦挣扎。我需要能够解析它以获得等效的几何图形并提取点坐标(X,Y,Z)。我不能使用 PostGIS 功能。我发现的唯一 java 库是 JTS Topology Suite,我使用如下:
String wkb = "01ea030000020000009b4d3899fe95154153d97e8f43875941000000000000454003085bc23f9615411b4dc406578759410000000000004740"
byte[] aux = WKBReader.hexToBytes(wkb);
try {
Geometry geom = new WKBReader().read(aux);
} catch (ParseException e) {
e.printStackTrace();
System.err.println("Bad WKB string.");
}
但它给了我以下错误:
com.vividsolutions.jts.io.ParseException:未知的 WKB 类型 234
234 是十六进制字符串“ea”的十进制值。就像 JTS 库只查看前 2 个字节而不是查看 4 个字节“ea03”,它对应于小端序中的 1002(所以是 LineStringZ)。
我的问题是:JTS 拓扑套件是否处理 LineStringZ ?如果不是,为什么点可以有 Z 值?我怎样才能正确解析它?
谢谢你的阅读!