Как преобразовать геометрию wkt в jts для географии?

Я хочу преобразовать географию wkt в геометрию jts.

Я пытался использовать jts wkt reader следующим образом.

импортировать com.vividsolutions.jts.geom.Geometry;

импортировать com.vividsolutions.jts.io.WKTReader;

Геометрическая геометрия = wktReader.read(wktString);

Здесь проблема в том, что wkt имеет формат (долгота и широта). Геометрия, которая создается из этого, не является ожидаемой.

Если бы ввод был в формате (широта и долгота), это решило бы проблему.

Один из способов, который я мог придумать, это взять внутренние кольца и корпус. Для каждого кольца поменяйте местами ширину и длину и создайте новое кольцо. После замены колец я создам новую геометрию.

Есть ли другой способ преобразовать wkt из x, y в y, x перед созданием геометрии?


person geek2coder    schedule 09.05.2014    source источник


Ответы (2)


Вы можете разыграть его, а затем получить объект геометрии:

JtsGeometry shape = (JtsGeometry) wkt(ctx, "POLYGON((0 0, 10 0, 5 5, 0 0))");

потом

shape.getGeom()

Он вернет объект Geometry, который вы можете использовать для дальнейших операций, таких как пересечение и т. д.:

shape.getGeom().intersection(otherGeometryShape);
person E. Roid    schedule 21.01.2018
comment
Спасибо за ваш ответ, я попробую. Что насчет ctx ? Как его настроить? - person Juan Salvador; 07.08.2019

JTS совершенно независима, когда дело доходит до систем координат. Он будет читать ваши данные по мере их представления. Это означает, что нет ни широты, ни долготы, только x и y, как в вашем вводе WKT.

См. Как поменять местами координаты объекта jts.geom.Geometry с широты, долготы на долготу, широту в JTS для некоторых идей по решению вашей проблемы.

person bugmenot123    schedule 04.05.2015