7.131 SDO_GEOR.setGCPGeorefModel

形式

SDO_GEOR.setGCPGeorefModel(
     inGeoraster     IN OUT SDO_GEORASTER 
     gcpGeorefModel  IN SDO_GEOR_GCPGEOREFTYPE);

説明

GeoRasterオブジェクトのGCPベースの地理参照モデル情報を設定します。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

gcpGeorefModel

FFMethodTypenGCPGCPssolutionAccuracyを含むオブジェクトを指定します。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

SDO_GEOR_GCPGEOREFTYPE型の詳細は、「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照してください。

このプロシージャは、GeoRaster SRSメタデータ構成要素にGCP情報を格納します。gcpGeorefModelがNULLで、GeoRasterオブジェクトに地理参照モデルが含まれる場合、このモデル情報は削除されます。

所定のジオメトリ・モデルに対してgcpGeorefModelに指定されたGCPが十分ではない場合、ファンクションは成功しますが、このGeoRasterオブジェクトを指定してSDO_GEOR.georeferenceをコールすると、例外が発生します。

次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照モデル情報を設定します。

DECLARE
   gr1          sdo_georaster;
   georefModel  SDO_GEOR_GCPGEOREFTYPE;
   GCPs         SDO_GEOR_GCP_COLLECTION;
   rms          sdo_number_array;
BEGIN
   SELECT georaster INTO gr1 from herman.georaster_table WHERE georid=10 FOR UPDATE;
 
   GCPs:=SDO_GEOR_GCP_COLLECTION(
                    SDO_GEOR_GCP('21', '', 1, 
                            2, sdo_number_array(25.625000, 73.875000),
                            2, sdo_number_array(237036.937500, 897987.187500),
                            NULL, NULL),
                     SDO_GEOR_GCP('22', '', 1, 
                            2, sdo_number_array(100.625000, 459.125000),
                            2, sdo_number_array(237229.562500, 897949.687500),
                            NULL, NULL),
                      SDO_GEOR_GCP('23', '', 1, 
                            2, sdo_number_array(362.375000, 77.875000),
                            2, sdo_number_array(237038.937500, 897818.812500),
                                NULL, NULL),
                       SDO_GEOR_GCP('24', '', 1, 
                             2, sdo_number_array(478.875000, 402.125000),
                             2, sdo_number_array(237201.062500, 897760.562500),
                             NULL, NULL),
                        SDO_GEOR_GCP('25', '', 2, 
                             2, sdo_number_array(167.470583,  64.030686),
                             2, sdo_number_array(237032.015343, 897916.264708),
                             NULL, NULL),
                         SDO_GEOR_GCP('26', '', 2, 
                             2, sdo_number_array(101.456177,  257.915534),
                             2, sdo_number_array(237128.957767, 897949.271912),
                             NULL, NULL)
               );
 
   georefModel := SDO_GEOR_GCPGEOREFTYPE('Affine',
                                                                             GCPs.count, GCPs, rms);
   sdo_geor.setGCPGeorefModel(gr1, georefModel);
   UPDATE georaster_table SET georaster=gr1 WHERE georid=10;
 
   COMMIT;
END;
/