2011-07-04 16 views

答えて

10

これらのコードのラインを使用します。私はそれを受け入れ答えはまだ2012年に(まだぎこちない)有効であったかもしれない:)

+8

多角形を作るには2つのGeometryFactoriesが必要ですか? –

+2

具体的なSRIDを設定する場合は、GeometryFactory = new GeometryFactory(新しいPrecisionModel()、_srid_);のようにGeometryFactoryを作成しなければなりません; _srid_を目的のSRIDに置き換えます。 – russellhoff

24

役立つことを願っています

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

をしかし、今日、あなたが本当に単純にそれを行う必要があります

// 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); 
+0

しかし、3Dでポリゴンを作成しています.2Dを強制するには? – janwen

+2

JTSは2Dです。座標オブジェクトには3番目のフィールドがありますが、常にNaNです。座標はJTSのジオメトリではありません。ポイントは、それはxとyだけです。 – bugmenot123

+1

はい、bugmenot123が正しいです.JTSの現在のバージョンでは、ポリゴンを作成するためにlinearRingを作成する必要はありません。単純なcreatePolygonで十分です。座標は閉じたリングを形成しなければならないことに留意してください(最初と最後の点は同じです)、例外が発生します。 –

関連する問題