10

jts ジオメトリオブジェクトを使用して、ジオメトリ オブジェクトを Oracle SDO_Geometry として格納しています。ただし、 SDO_GEOM.RELATEメソッドを使用したい場合、それらが適切に機能しないため、空間インデックスを作成する必要があることに気付きましたが、 hibernateの操作方法がわかりません。この問題の注釈を知っていますか。

@Type(type="org.hibernate.spatial.GeometryType")
 private Geometry area;
4

1 に答える 1

3

これらのジオメトリを格納するテーブルにインデックスを作成するだけです。そのためにSQLを使用します。

また、(インデックスを作成する前に) 適切なメタデータを追加して、インデックスの作成に必要な適切な情報 (座標系、境界、許容差) が含まれるようにする必要があります。たとえば、ジオメトリが WGS84 座標にあるとします。

insert into user_sdo_geom_metadata (table_name, column_name, diminfo, srid)
values (
  'US_CITIES', 
  'GEOMETRY',
  sdo_dim_array (
    sdo_dim_element('long', -180.0, 180.0, 0.5),
    sdo_dim_element('lat', -90.0, 90.0, 0.5)
  ),
  4326
);
commit;

次に、インデックスを作成します。

create index us_cities_sx on us_cities (geometry)
  indextype is mdsys.spatial_index;
于 2015-08-04T09:23:39.913 に答える