Преобразовать геометрию java.lang.String в jts Geometry - PullRequest
2 голосов
/ 29 декабря 2011

У меня есть геометрия в формате java.lang.String.Я имею в виду, я беру это непосредственно из БД в виде java.lang.String, который хранится в переменной.Я хочу как-то преобразовать его в JTS Geometry type.Есть ли способ сделать это, или то, что я пытаюсь сделать, это просто глупый подход?

Ответы [ 2 ]

5 голосов
/ 13 июля 2016

Я предполагаю, что ваша геометрия имеет формат WKT ( Хорошо известный текст ). Если нет, вы можете получить его в формате WKT с помощью метода ST_AsText (требуется пространственная БД, которую, я полагаю, вы используете).

Простой пример того, как получить геометрию из строки WKT:

String wktString = "LINESTRING (0 0, 0 10)";
WKTReader reader = new WKTReader();
Geometry geom = reader.read(wktString);
1 голос
/ 25 сентября 2012

Вам нужно сначала преобразовать строку в координаты, прежде чем преобразовать ее в геометрию.

Если значения разделены запятыми, вы можете разделить их и создать массив координат

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);

Это то, что вы хотите сделать?

...