2017-12-15 16 views
0

oracleデータベースでhibernate spatial(JTSのgeolatte)を使用しています。私はポリゴンを持つジオメトリオブジェクトを作成しているので、データベースのSDO_GEOMETRYオブジェクトとして永続化されています。現在、すべてのポリゴンは反時計回りに格納され、SDO_ELEM_INFO_ARRAYのSDO_ETYPEは1003(外部ポリゴンリング)に設定されています。ポリゴンを反転させてそれを保持すると、反時計回りの向きは変わりません。Hibernate空間ポリゴン座標オリエンテーション

これで、この要件を強制するか、またはSDO_GEOMETRYオブジェクトが作成されると、向きが設定されます。

ポリゴンがデータベースに保存される方向を制御したいと思います。これは休止状態ですか?シェルの代わりにポリゴンを作成するときにポリゴンを穴(内輪)として保存する必要がありますか?

ありがとうございます!

答えて

0

Oracleは、SDO仕様の一部として特定の順序付けを要求します。注:JTSで使用するためにクリーンアップされたGeoToolsコードの元の著者です。

詳細については、jacadocの例またはSDOドキュメントを参照してください。

+0

おかげでそんなにお返事!私は検索や読書を2日間行っていますが、オリエンテーションを指定する方法のリンクを教えてください。 – user6888562

0

Oracle Spatialのドキュメントは、セクション2.2.4に多角形リングの方向を指定:

https://docs.oracle.com/cd/A97630_01/appdev.920/a96630/sdo_objrelschema.htm#sthref198

+0

ありがとう!はい、私はすでにその文書を読んでいます。ポリゴンはSDO_ETYPE 1003として格納されています。つまり、ポリゴンは時計回りに反時計回りに動かされます。問題は、ポリゴンが時計回りに格納されるように、Java/Hibernateを使用してSDO_ETYPEを2003に変更する方法です。私は現在、2003年のSDO_ETYPEになることを期待して、シェルをnullに設定し、ポリゴン(Polygon(LinearRingシェル、LinearRing []ホール、GeometryFactoryファクトリ))に穴を設定しています。 – user6888562

関連する問題