我有一个java.lang.String格式的几何.我的意思是我直接从DB中获取它作为存储在变量中的java.lang.String.我想以某种方式将它转换为jts几何类型.有没有办法做到这一点或我想做的只是一个愚蠢的方法?
我假设您的几何体具有WKT(标准文本)格式.如果没有,您可以使用该ST_AsText方法以WKT格式获取它(需要空间数据库,我假设您正在使用它).
如何从WKT字符串获取几何的简单示例:
String wktString = "LINESTRING (0 0, 0 10)";
WKTReader reader = new WKTReader();
Geometry geom = reader.read(wktString);
Run Code Online (Sandbox Code Playgroud)
您必须首先从字符串转换为坐标,然后才能将其转换为几何图形。
如果值以逗号分隔,您可以将它们拆分并创建一个坐标数组
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++;
}
Run Code Online (Sandbox Code Playgroud)
之后,您可以使用 GeometryFactory() 类创建您想要的任何几何图形。例如要创建一个线串,
Geometry geometry = new GeometryFactory().createLineString(coordinates);
Run Code Online (Sandbox Code Playgroud)
这是你想做的吗?