将java.lang.String几何转换为jts Geometry

use*_*946 3 jts

我有一个java.lang.String格式的几何.我的意思是我直接从DB中获取它作为存储在变量中的java.lang.String.我想以某种方式将它转换为jts几何类型.有没有办法做到这一点或我想做的只是一个愚蠢的方法?

Lar*_*ars 5

我假设您的几何体具有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)


Joy*_*son 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++;
}
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用 GeometryFactory() 类创建您想要的任何几何图形。例如要创建一个线串,

Geometry geometry = new GeometryFactory().createLineString(coordinates);
Run Code Online (Sandbox Code Playgroud)

这是你想做的吗?