我們可以創建一個使用座標列表這樣的線段形式:當我們有座標列表時如何在JTS中創建多邊形?
Geometry g1 = new GeometryFactory().createLineString(coordinates);
我們如何創建一個使用座標列表中的多邊形?
在此先感謝。
我們可以創建一個使用座標列表這樣的線段形式:當我們有座標列表時如何在JTS中創建多邊形?
Geometry g1 = new GeometryFactory().createLineString(coordinates);
我們如何創建一個使用座標列表中的多邊形?
在此先感謝。
使用這些行代碼:
GeometryFactory fact = new GeometryFactory();
LinearRing linear = new GeometryFactory().createLinearRing(coordinates);
Polygon poly = new Polygon(linear, null, fact);
我希望這將有助於:)
你見過他們的文檔嗎? 看一看 - http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/geom/Polygon.html
我覺得這非常直截了當。我希望這會解決你的問題。
接受的答案可能會在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);
但它是用3D創建多邊形。如何強制爲2D? – janwen
JTS是2D的。座標對象有第三個字段,但始終是NaN。座標不是JTS中的幾何圖形。點將是,它只有x和y。 – bugmenot123
是的,bugmenot123是正確的,在當前版本的JTS中,您不需要創建linearRing來創建多邊形,但一個簡單的createPolygon就足夠了。請記住,座標必須形成一個封閉的環(第一個和最後一個點是相同的),否則您將得到一個異常。 –
我想知道爲什麼你需要2個GeometryFactory來製作一個多邊形? –
如果你想設置一個特定的SRID,你必須以這種方式創建一個GeometryFactory:GeometryFactory fac = new GeometryFactory(new PrecisionModel(),_srid_);用你想要的SRID替換_srid_。 – russellhoff