文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>将shp数据存储到oracle或者sql server 2008中

将shp数据存储到oracle或者sql server 2008中

时间:2010-08-29  来源:醉意人间

ArcGIS 10 中有一个新的功能 query layer,用这个东西就可以将存储在其他关系型数据库里面的数据整合到ArcMap中,看来ESRI越来越开放了,我们知道,空间数据的存储有点复杂,不同的GIS厂商都有自己管理数据的结构,比如超图和MapGIS就和ESRI的空间数据结构不一样,同样关系型数据库也有自己的空间数据存储结构,Oracle提供了SDO_GEOMETYR和ST_GEOMETYR,注意这个和ESRI提供的ST_GEOMETYR是不一样的。
Oracle提供了一个shp2sdo的工具,将shp数据存储成自己的SDO_GEOMETYR,在这里我操作一下。我的shp数据CUN2。
这是在ArcMap下看到的
下载 (116.56 KB)
4 天前 09:55


将下载到的shp2sdo添加到oracle的bin目录下,为什么?因为oracle安装的时候配置了一个环境变量path,在这里我不多介绍。



从cmd 进入shp文件的目录,我的shp数据在计算机上的位置
下载 (26.61 KB)
4 天前 09:51




Esriquery 为oracle中的表名,我采用默认的。
下面多了三个文件
下载 (16.5 KB)
4 天前 09:51

下载 (14.25 KB)
4 天前 09:51
下载 (2.36 KB)
4 天前 09:51

Ctl为控制文件,里面有dat数据的地址,dat数据含有我们的数据

我用scott用户连接到oracle数据库,然后做如下操作,执行sql语句,可以打开看看,不要因为看到第1行出现错误,就认为这个错了,原因呢,在这里我不说了,sql语句里面可以看到。Sql语句其实是创建了一个表。
下载 (5.61 KB)
4 天前 09:51


Sql语句其实是创建了一个表,但是还没装在数据呢?数据是在dat中,装载控制文件,控制文件记录了dat数据的位置。


下载 (10.79 KB)
4 天前 09:51
下载 (5.87 KB)
4 天前 09:51


创建一个空间索引
SQL>CREATE Index esriquery_index ON esriquery (GEOM)INDEXTYPE IS MDSYS.SPATIAL_INDEX;
在oracle中看到的

下载 (23.91 KB)
4 天前 09:51


本来是要ArcMap中直接利用Query Layer 访问这个数据,我的ArcGIS是10的,Oracle是11的R2,计算机是64的win7但是就死活连接不上,最终和同事认为是一个BUG,同事说装一个32位的客户端就可以了,我看到他们确实可以,而且我用其他的都可以连接上,从命令端或者sql developer都可以,但是ArcMap不行,没法,我将数据又存储在sql server2008中,可以,通过query layer可以访问,至于Oracle的那个问题。我还在努力。

在这里说一下,我找到的一个工具是将shp存储在sql server2008中,估计不是官方的,所以如果字段是汉字的话,会有乱码,用英文字段名称没问题的。
Shp2sql server2008下载地址
http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx
以下是用query layer访问到sql server 2008 中的数据


下载 (114.88 KB)
4 天前 09:51
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载