29.16 SDO_PC_PKG.SDO_PC_NN
書式
SDO_PC_PKG.SDO_PC_NN( pc IN SDO_PC, center IN SDO_GEOMETRY, n IN NUMBER ) RETURN BLOB;
説明
入力点群オブジェクト内で指定された3D点に最も近いn個の点を戻します。
例
次の例では、指定された点群オブジェクト内で指定の"center"点から最も近い点を3200個戻します。
select rownum pt_pos, sdo_geometry( 3001, null, sdo_point_type(x, y, z), null, null) pts from table( sdo_util.getvertices( geometry => sdo_pc_pkg.to_geometry( pts => sdo_pc_pkg.sdo_pc_nn( pc => (select pc from pcs where id = 1), center => sdo_geometry( 3001, null, sdo_point_type(15, 15, 30), null, null), n => 3200), num_pts => 3200, pc_tot_dim => 3, srid => null, blk_domain => null, get_ids => 1))) order by sqrt( (x - 15) * (x - 15) + (y - 15) * (y - 15) + (z - 30) * (z - 30)), x, y, z; PT_POS ---------- PTS(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(15, 15, 30), NULL, NULL) 2 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(15, 15, 30), NULL, NULL) 4 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(14, 15, 29), NULL, NULL) 10 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(14, 15, 29), NULL, NULL) 5 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(14, 16, 30), NULL, NULL) 11 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(14, 16, 30), NULL, NULL) 3 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(15, 14, 29), NULL, NULL) ... 3200 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(33, 28, 61), NULL, NULL) 3199 SDO_GEOMETRY(3001, NULL, SDO_POINT_TYPE(46, 2, 48), NULL, NULL) 3200 rows selected. Elapsed: 00:00:15.57
親トピック: SDO_PC_PKGパッケージ(点群)