首页 理论教育 空间数据库实验教程:SHP2SDO数据格式转换

空间数据库实验教程:SHP2SDO数据格式转换

时间:2023-08-29 理论教育 版权反馈
【摘要】:尽管空间数据格式有一定的标准,但几乎每一个GIS软件都有自定义的数据格式,并且和可视化效果有较大程度的关联。这对空间数据的无损共享造成了极大的障碍。在这里不打算讨论众多的转换工具,而只是简单介绍一下如何使用SHP2SDO将.shp文件转换成Oracle Spatial所支持的格式。-p——将点存储在SDO_ORDINATES数组,否则存储在SDO_POINT中。这三个文件分别包含ESRI的ovclines数据中的不同内容。

空间数据库实验教程:SHP2SDO数据格式转换

尽管空间数据格式有一定的标准,但几乎每一个GIS软件都有自定义的数据格式,并且和可视化效果有较大程度的关联。这对空间数据的无损共享造成了极大的障碍。由于很多GIS软件是在空间数据标准发布之前就开发出来的,一些常用的GIS软件的空间数据格式便成为了事实上的标准格式之一,ESRI的.shp文件格式就是其中之一。Oracle Spatial并不识别这些格式,因此我们需要借助第三方转换工具将其转换成Oracle Spatial所支持的空间数据格式。在这里不打算讨论众多的转换工具,而只是简单介绍一下如何使用SHP2SDO将.shp文件转换成Oracle Spatial所支持的格式。SHP2SDO的用法如下:

图2-2 ArcGIS中显示的武汉光谷示例图(©OpenStreetMap contributors)

shp2sdo[-o]<shapefile><tablename>-g<geometry column>

-i<id column>-n<start_id>-p-d

-x(xmin,xmax)-y(ymin,ymax)-s<srid>

shp2sdo-r<shapefile><outlayer>-c<ordcount>-n<start_gid>-a-d

-x(xmin,xmax)-y(ymin,ymax)

shapefile ——输入的.shp文件名(不包括后缀)。

tablename——空间表名,如果不输入则表名与输入的文件名相同。

通用选项:

-o——转换到对象模型/关系模型(默认)。

-r——转换到关系模型格式。

-d——在Oracle控制文件中存储数据,如果没有则将数据存储到分开的文件中。

-x——X方向上的数据范围。

-y——Y方向上的数据范围。

-v——冗余输出。

-h or-?——输出帮助信息。

对象模型选项:

-g geom_column ——指定SDO_GEOMETRY所在列名,默认为GEOM。(www.xing528.com)

-i id_column ——用于几何计数的列名,如果没有声明,则没有关键列生产,如果没有名字声明,则用ID。

-n start_id ——ID的开始数字,默认为1。

-p ——将点存储在SDO_ORDINATES数组,否则存储在SDO_POINT中。

-s ——加载SRID,否则SRID为空。

-t ——加载误差容忍阈值,默认为0.000 000 05。

-8 ——写成8i的控制文件格式,否则为9i或以后版本。

-f ——几何对象采用10位数精度,默认为6位精度。

关系模型选项:

-c ordcount ——_SDOGOEM表中的纵坐标数,默认为16。

-n start_gid ——GID的开始数字,默认为1。

-a ——属性进入_SDOGEOM表,否则为分开的表。

运行如下命令:

SHP2SDO ovclines-g roads-x(-180,180)-y(-90,90)-s 8307-t 0.000 000 01

需要注意的是,这里的ovclines代表的是三个不同的输入文件,分别是ovclines.shp、ovclines.dbf和ovclines.shx。这三个文件分别包含ESRI的ovclines数据中的不同内容。-x及其参数表示经度范围为-180°到180°,-y及其参数表示纬度范围为-90°到90°。8307是WGS84的SRID,-t及其参数表示几何计算中采用的阈值是0.000 000 01。运行上面的命令后,输出三个文件:

ovclines.sql ——创建ovclines表,并加载空间元数据的SQL脚本文件。

ovclines.ctl ——SQLLoader的控制文件。

ovclines.dat ——SQLLoader的数据文件。

接下来的入库过程就是使用SQLLoader加载这三个文件到空间数据库,具体操作过程见2.2。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈