我有一个 java.lang.String 格式的几何图形。我的意思是我直接从数据库中获取它作为存储在变量中的 java.lang.String。我想以某种方式将其转换为 jts Geometry 类型。有什么办法可以做到,或者我想做的只是一种愚蠢的方法?
问问题
7589 次
2 回答
9
我假设您的几何图形具有 WKT(众所周知的文本)格式。如果没有,您可以使用该ST_AsText
方法以 WKT 格式获取它(需要空间数据库,我假设您正在使用它)。
如何从 WKT 字符串中获取几何图形的简单示例:
String wktString = "LINESTRING (0 0, 0 10)";
WKTReader reader = new WKTReader();
Geometry geom = reader.read(wktString);
于 2016-07-13T06:30:02.573 回答
2
您必须先从字符串转换为坐标,然后才能将其转换为几何。
如果值是逗号分隔的,您可以拆分它们并创建一个坐标数组
String[] split=stringgeometry.split(",");
Coordinate[] coordinates = new Coordinate[split.length/2];
index = 0;
for(int i=0;i<split.length;i+=2)
{
coordinates[index]=new Coordinate(split[i], split[i+1]);
index++;
}
在此之后,您可以使用 GeometryFactory() 类创建您想要的任何几何图形。例如创建一个线串,
Geometry geometry = new GeometryFactory().createLineString(coordinates);
这是你想做的吗?
于 2012-09-25T09:22:58.607 回答