Как создать многоугольник в JTS, когда у нас есть список координат?

Мы можем создать LineString, используя список координат следующим образом:

     Geometry g1 = new GeometryFactory().createLineString(coordinates);

Как мы можем создать многоугольник, используя список координат?

Заранее спасибо.


person Piscean    schedule 04.07.2011    source источник


Ответы (3)


Принятый ответ, возможно, все еще был действительным (все еще неуклюжим) в 2012 году, но в настоящее время вы действительно должны сделать это просто так:

// Create a GeometryFactory if you don't have one already
GeometryFactory geometryFactory = new GeometryFactory();

// Simply pass an array of Coordinate or a CoordinateSequence to its method
Polygon polygonFromCoordinates = geometryFactory.createPolygon(coordinates);
person bugmenot123    schedule 24.04.2015
comment
Но это создание полигона с 3D. Как заставить 2D? - person Mr Lou; 04.05.2015
comment
JTS является 2D. Координатные объекты имеют третье поле, но это всегда NaN. Координата не является геометрией в JTS. Точка была бы и у нее есть только x и y. - person bugmenot123; 04.05.2015
comment
Да, bugmenot123 прав, с текущей версией JTS для создания полигона не нужно создавать linearRing, достаточно простого createPolygon. Только имейте в виду, что координаты должны образовывать замкнутое кольцо (первая и последняя точка совпадают), иначе вы получите исключение. - person Marko Letic; 25.08.2016

Используйте эти строки кодов:

 GeometryFactory fact = new GeometryFactory();
 LinearRing linear = new GeometryFactory().createLinearRing(coordinates);
 Polygon poly = new Polygon(linear, null, fact);

Надеюсь, это поможет :)

person Piscean    schedule 28.06.2012
comment
Если вы хотите установить конкретный SRID, вы должны создать GeometryFactory следующим образом: GeometryFactory fac = new GeometryFactory(new PrecisionModel(), srid); заменив srid на желаемый SRID. - person russellhoff; 22.01.2016

Вы видели их документацию? Взгляните — http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/geom/Polygon.html

Я думаю, что это очень прямолинейно. Я надеюсь, что это решит вашу проблему.

person Chetan Gole    schedule 04.07.2011
comment
ссылка не работает - person Hugo Roussaffa - GeoDatup; 04.10.2019
comment
Ссылка, которую вы ищете, перемещена здесь - person heyhey2k; 17.06.2020