首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JTS拓扑套件解析WKB字符串

使用JTS拓扑套件解析WKB字符串
EN

Stack Overflow用户
提问于 2015-03-19 10:53:56
回答 2查看 2.3K关注 0票数 3

几天来,我一直在与WKB字符串做斗争。我需要能够解析它,以获得等效的几何和提取点坐标(X,Y,Z)。我不能使用PostGIS函数。我找到的唯一java库是JTS拓扑套件,我使用该库如下:

代码语言:javascript
运行
复制
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个字节‘’s 03‘,它们对应于小endian中的1002 (所以是一个LineStringZ)。

我的问题是: JTS拓扑套件处理LineStringZ吗?如果不是,为什么点可以有一个Z值?我如何正确地解析它呢?

谢谢你的阅读!

EN

回答 2

Stack Overflow用户

发布于 2015-05-04 16:41:04

JTs只支持2D几何图形,不支持Z值。点中只有X和Y。

票数 0
EN

Stack Overflow用户

发布于 2017-08-08 15:44:10

JTS拓扑套件支持3D数据,但采用EWKB格式。不支持ISO WKB。如果碰巧您正在使用postgis,它支持EWKB。ST_GeomFromEWKB <-> ST_AsEWKB

另外,如果要用WKBWriter编写EWKB,请不要忘记指定输出酒体:

代码语言:javascript
运行
复制
 WKBWriter wkbw = new WKBWriter(3);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29142663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档