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 は、16 進文字列「ea」の 10 進値です。JTS ライブラリは、リトル エンディアンの 1002 (つまり LineStringZ) に対応する 4 バイトの 'ea03' を調べる代わりに、最初の 2 バイトだけを調べていたようです。
私の質問は次のとおりです。JTS Topology Suite は LineStringZ を処理しますか? そうでない場合、ポイントが Z 値を持つことができるのはなぜですか? どうすれば正しく解析できますか?
読んでくれてありがとう!