`
xiexd
  • 浏览: 248757 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何将ESRI的Shapefile导入到Oracle数据库中(转)

    博客分类:
  • GIS
阅读更多

本文转自http://www.blogjava.net/reeve/archive/2007/08/01/133759.html

 

最 近因为工作的关系,开始接触GIS,采用开源的Geoserver、Geotools、Mapbuilder来开发,数据库使用oracle spataral,刚开始是一直在看别人已经做好的一个半成品系统,自己模仿着来改,GIS采用的数据格式比较特殊,不能使用一般的导表方式来导,而且地 图文件的格式也比较特殊,一般是shp、或者是tab,这里主要是用的shp文件,因此需要将shp文件进行处理,转换成oracle数据格式,其实也没 什么难的,只是如果不熟悉的话,可能也需要浪费一点时间来看一下。

首先我们要把shp文件转换分割成oracle可以导入的数据库文 件,这个转换可以使用oracle提供的一个现成的工具shp2sdo(很小),可以到官方网站去找(不过可能不是很好找,需要的可以留下邮箱),下载后 把此文件复制到PATH变量包含的目录下,如我的oracle客户端安装后自动注册的环境变量是 path  C:\Oracle\product\10.1.0\Client_1\bin;,我们可以把此文件拷贝到该目录下,然后在dos下运行该工具,定位到我 们的shp文件的位置,例如我们的shp文件名称是state.shp(shapefile包括至少三个文件state.shp state.dbf state.idx)在D:\data\目录下,我们在dos命令窗口下就应该这样操作

shp2sdo state statearea -i gid -s 8307 -g -d

其 中state即为本地的shp文件名(不加shp后缀),statearea为生成的文件名(同时也是将来导进数据库的表名),-d代表含义是将分解后的 ctl文件(控制文件)和data文件(数据存储文件)分别生成,如果没有该选项,则不会有单独的data文件生成,数据存储和控制都在ctl一个文件 中, 经常用到的还有选项 -i id_colum指定id序列列,默认是id,即作为生成数据的唯一性标志,此列是不可能重复的,一般作为索引列,-s **指定生成srid,默认是null,目前一般是8307吧,-g  geometry column指定sdo_geometry,默认是GEOM,此选项一般使用默认即可,命令执行后,会生成三个文件,statearea.sql、 statearea.ctl、stateare.data。
分解完成后就是导入,这里仍然使用命令行的方式

D:\data\>sqlplus pgg/pgg@orcl
SQL>@statearea.sql
SQL>quit 

导入ctl文件

D:\data\>sqlldr pgg/pgg@orcl statearea

建立空间索引

D:\data\>sqlplus pgg/pgg@orcl
SQL>CREATE Index STATEAREA_idx ON  STATEAREA (GEOM) INDEXTYPE is MDSYS.SPATIAL_INDEX;

至此空间数据导入完毕。
另外还需要建立一个视图,具体作用说不大清楚,但在启动程序发布地图的时候会用到,如果没有此视图文件会出现图层无法map的错误,建立过程如下:

SQL> CREATE OR REPLACE VIEW CS_SRS AS
2 SELECT "CS_NAME","SRID","AUTH_SRID","AUTH_NAME","WKTEXT","CS_BOUNDS"
3 FROM MDSYS.CS_SRS
4 /

另外如果自己手工新建图层的话,过程如下:

DROP TABLE BZXX;

CREATE TABLE BZXX(
  GID  VARCHAR2(32) NOT NULL,
  NAME VARCHAR2(20),
  BZNR VARCHAR2(400),
  BEIZ VARCHAR2(600),
  COOR MDSYS.SDO_GEOMETRY
);

ALTER TABLE BZXX
ADD CONSTRAINT PK_BZXX PRIMARY KEY (GID);

DELETE FROM USER_SDO_GEOM_METADATA
WHERE TABLE_NAME = 'BZXX' AND COLUMN_NAME = 'COOR' ;

INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
VALUES ('BZXX', 'COOR',
    MDSYS.SDO_DIM_ARRAY
      (MDSYS.SDO_DIM_ELEMENT('X', -180.000000000, 180.000000000, 0.500000000),
       MDSYS.SDO_DIM_ELEMENT('Y', -90.000000000, 90.000000000, 0.500000000)
     ),
8307);
COMMIT;

CREATE INDEX BZXX_GEOM_INDEX ON BZXX(COOR)
      INDEXTYPE IS MDSYS.SPATIAL_INDEX
      PARAMETERS('SDO_INDX_DIMS=2, LAYER_GTYPE=POINT');

分享到:
评论

相关推荐

    shp2oracle:将 shapefile 摄取到 oracle 数据库的命令行工具

    标题中的“shp2oracle”是一个用于将Shapefile数据导入Oracle数据库的命令行工具,它在地理信息系统(GIS)领域非常常见。Shapefile是ESRI公司的一种矢量数据格式,通常用于存储地理空间数据,如点、线和多边形等...

    shp2sdo,shp转oracle,shp转换,oracle识别,实现shp文件转oracle数据库

    本文将详细介绍如何通过`shp2sdo`工具将SHP文件转换为Oracle Spatial可识别的格式,并将其导入到Oracle数据库中。 首先,理解`shp2sdo`工具。`shp2sdo`是一个命令行工具,专门用于将Shapefile数据转换成Oracle ...

    用户shape文件导入到oracle

    2. **创建表**:在Oracle数据库中创建一个表,用于存储导入的shape文件数据。这个表需要一个SDO_GEOMETRY类型的列来存储几何数据,以及其他列来存储属性数据。例如: ```sql CREATE TABLE my_table ( object_id ...

    地图文件导入数据库的方法借鉴.pdf

    地图文件导入数据库是GIS(地理信息系统)操作中的一个重要环节,主要目的是将地图数据整合到数据库中,以便进行更高效的数据管理和分析。以下是对标题和描述中提到的知识点的详细说明: 1. **GIS文件格式转换**: ...

    shp导入oracle

    本文将详细介绍如何将shp文件导入到Oracle数据库中。 1. **Shp2sdo工具的使用** `shp2sdo`是Oracle提供的一款用于将Shapefile转换为Oracle Spatial数据格式的命令行工具。首先,你需要从Oracle官网下载该工具,并...

    shp2sdo,shp转oracle spatial

    标题中的"shp2sdo"指的是一个转换工具,它能将ESRI的Shapefile(shp)格式的数据转换为Oracle Spatial(SDO)格式,以便于将这些空间数据导入Oracle数据库。Shapefile是一种广泛使用的矢量地理数据格式,包含点、线...

    sdo2shp和shp2sdo

    例如,你可能有一个Shapefile格式的地图数据,需要将其存储在Oracle数据库中以供Web应用程序使用,这时就需要用到`shp2sdo`。反之,如果你要将Oracle数据库中的地图数据提供给不支持Oracle Spatial的GIS软件,`sdo2...

    oracle上传GIS数据方法.doc

    许多GIS软件,如Intergraph的GeoMedia、MapInfo、AutoDesk的MapGuide、ESRI的ArcSDE和ArcGIS以及中地公司的MapGIS,都提供了与Oracle Spatial的集成,可以直接将数据导入到Oracle Spatial数据库中。这种方式简单便捷...

    shp2sdo20211018.rar

    本主题将详细探讨“shp2sdo”插件,它是将.shp(ESRI Shapefile)格式的数据导入Oracle Spatial数据库的重要工具。Shapefiles是一种常见的矢量地理数据格式,而Oracle Spatial则是Oracle数据库的一个扩展,支持空间...

    shp文件导入oracle工具shp2sdo

    "shp2sdo"工具正是将这两者结合的关键,它允许用户将.shp文件的数据导入到Oracle数据库中。 首先,我们需要理解shp文件的结构。shp文件通常由多个关联文件组成,包括.shp(几何数据)、.dbf(属性数据)、.shx...

    shp2sdo三个版本

    这个工具主要用于将ESRI的Shapefile(shp)格式的空间数据转换并导入到Oracle数据库中,其中Oracle Spatial是Oracle数据库的一个扩展模块,专门用于存储、管理和分析地理空间数据。 Oracle 11g版本已经包含了Oracle...

    tatukgis+oracle学习PPT

    5. **数据导入导出**:学习如何将空间数据从其他格式(如ESRI Shapefile、GeoTIFF等)导入Oracle数据库,以及如何将数据从Oracle导出为其他GIS兼容格式,以便在tatukGIS中使用。 6. **空间查询与分析**:掌握在...

    基于ArcSDE与Oracle9i Spatial的空间数据转换及备份.pdf

    它提供了高级的空间查询和分析功能,支持多种空间数据标准和格式,使得地理信息能够在Oracle数据库中得以充分利用。 【空间数据转换】 在ArcSDE管理和Oracle9i Spatial中,空间数据的存储格式可能存在不一致的问题...

    geoserver 中需要的shapefile文件

    GeoServer可以与各种数据库(如PostGIS、Oracle Spatial等)以及各种数据格式(如Shapefile、GML、KML等)集成,使得地理数据能够被Web应用程序所访问和展示。 **Shapefile** Shapefile是由Esri公司开发的一种地理...

    shp2sdo, a tool to convert shp to sdo oracle

    标题"shp2sdo, a tool to convert shp to sdo oracle" 提到的“shp2sdo”是一个工具,它的主要功能是将ESRI的Shapefile(shp)格式的数据转换为Oracle数据库中的Spatial Data Object (SDO) 格式。Oracle9i Spatial及...

    shp2sdoshp

    这个工具通常包含在GIS软件的开发库或者Oracle Spatial的安装包中,可以帮助用户将Shapefile的数据加载到Oracle数据库的Spatial表格中。 使用`shp2sdo`的步骤大致如下: 1. **准备环境**:确保已经安装了Oracle...

    Arcgis-Oracle11g-shp数据文件互通详细说明-绝无仅有!

    ArcGIS与Oracle11g之间的数据互通是一项关键任务,特别是在地理信息系统(GIS)中,它允许用户将SHP(Shapefile)地理数据导入到Oracle数据库中,并通过ArcGIS进行地图展示。本文将详细讲解这一过程,提供清晰的步骤...

    数字地图格式转换

    这个工具能够帮助用户轻松地将地理数据从SHP格式导入到Oracle数据库,使得数据可以在空间查询、分析和展示中使用。 在使用"shp2sdo"之前,你需要确保已安装了Oracle数据库和Oracle Spatial组件,因为后者提供了对...

    石油行业ORACLE空间数据应用实例

    这通常涉及将地理信息系统(GIS)格式的数据,如ESRI的Shapefile或GeoTIFF,转换为ORACLE兼容的格式,然后使用SQL命令或专用工具如Oracle Spatial Loader导入数据库。在“解释成果数据空间存储.doc”文档中,可能...

    基于ArcSDE与Oracle10g的城市地理信息数据处理与入库研究.pdf

    在本文中,数据加载器可能被用于将城市地理信息数据导入到Oracle数据库中。数据加载器通常支持多种数据格式转换和批量处理功能,极大地提高了数据入库的效率和准确性。 城市地理信息数据入库是指将处理后的数据存储...

Global site tag (gtag.js) - Google Analytics