本文共 2055 字,大约阅读时间需要 6 分钟。
Oracle Spatial GeoRaster ?Oracle Spatial ??????????????????? raster ?????????? Oracle Spatial GeoRaster ???????????????????
? Oracle ???????????? GeoRaster ???????????????????????
1.1 ?? SDO_GEORATSER ??
CREATE TYPE SDO_GEORATSER AS OBJECT ( rasterType NUMBER, spatialExtent SDO_Geometry, rasterDataTable VARCHAR2(32), rasterID NUMBER, metadata XMLType );
1.2 ?? SDO_RATSER ??
CREATE TYPE SDO_RATSER AS OBJECT ( RasterID NUMBER, PyramidLevel NUMBER, bandBlockNumber NUMBER, rowBlockNumber NUMBER, columnBlockNumber NUMBER, blockMBR SDO_Geometry, rasterBlock BLOB );
2.1 ?? GeoRaster ?
CREATE TABLE georaster_jpgs_table ( geoid NUMBER PRIMARY KEY NOT NULL, georatser SDO_GeORaster );
2.2 ???????
????SDO_GEOR_UTL.CreateDMLTrigger ????????? DML ????? GeoRaster ??????????? CALL SDO_GEOR_UTL.CreateDMLTrigger(georaster_jpgs_table, 'georatser');
2.3 GeoRaster ????????
??? GeoRaster ????? Raster ????????????????????CREATE TABLE ratser_data_table OF SDO_RASTER ( PRIMARY KEY (RasterID, PyramidLevel, bandBlockNumber, rowBlockNumber, columnBlockNumber) );
3.1 GeoRaster ????????
DECLARE geoobj SDO_GeORaster; BEGIN SELECT georatser INTO geoobj FROM georaster_jpgs_table WHERE geoid = 1 FOR UPDATE; SDO_GEOR georeference(geoobj, 82394, 1, SDO_NUMBER_ARRAY(-28.5, 0, 1232804.04), SDO_NUMBER_ARRAY(0, 13678.09) ); UPDATE georaster_jpgs_table SET georatser = geoobj WHERE geoid = 1; COMMIT; END;
3.2 GeoRaster ????????
DECLARE geoobj SDO_GeORaster; BEGIN SELECT georatser INTO geoobj FROM georaster_jpgs_table WHERE geoid = 1 FOR UPDATE; SDO_GEOR.generatePyramid(geoobj, 'resampling=NN'); UPDATE georaster_jpgs_table SET georatser = geoobj WHERE geoid = 1; COMMIT; END;
3.3 ??????
INSERT INTO georaster_jpgs_table (name, image) VALUES ('earth', SDO_GEOR.INIT('ratser_data_table')); ????????????????? Oracle Spatial GeoRaster ????????????????????
转载地址:http://ztpfk.baihongyu.com/