WKBReader的文档说:
它还部分处理 PostGIS 使用的扩展 WKB 格式(通过读取 SRID 值)
但是当我传递一个在前 4 个字节中具有 SRID 的字节数组时,WKBReader
我从WKBReader
. 此链接也遇到相同的问题,并在将字节流传递到WKBReader
. 查看代码本身WKBReader
:
private Geometry readGeometry() throws IOException, ParseException {
byte byteOrderWKB = this.dis.readByte();
int byteOrder = byteOrderWKB == 1?2:1;
this.dis.setOrder(byteOrder);
int typeInt = this.dis.readInt();
int geometryType = typeInt & 255;
boolean hasZ = (typeInt & -2147483648) != 0;
this.inputDimension = hasZ?3:2;
this.hasSRID = (typeInt & 536870912) != 0;
int SRID = 0;
if(this.hasSRID) {
SRID = this.dis.readInt();
}
它看起来不正确,因为它没有将前 4 个字节解码为 SRID。我还尝试了以下操作:
g = some JTS Geometry
g.setSRID(4326);
new WKBReader().read(new WKBWriter().write(g)).getSRID()
返回0
而不是预期4326
。我的问题是 JTS 的任何人都可以确认这确实是一个错误吗?如果没有,有什么问题?把它修好就好了。