将shp数据存入Oracle再到开源GIS geoserver发布地图数据

将shp数据存入Oracle再到开源GIS geoserver发布地图数据

2016-10-27 作者: 玲玲 浏览: 1924 次

摘要: 一、shp数据存入Oracle 1、首先下载shp2sdo.exe 工具(网上有很多,需要的也可以百度Hi我),本就是Oracle的一个工具,直接放到自己的Oracle安装目录X:\oracle\product\10.2.0\db_1\BIN下面就可以啦 2、...

一、shp数据存入Oracle

1、首先下载shp2sdo.exe 工具(网上有很多,需要的也可以百度Hi我),本就是Oracle的一个工具,直接放到自己的Oracle安装目录X:\oracle\product\10.2.0\db_1\BIN下面就可以啦

2、将要转的shp文件放到某个目录下如(F:\SHP_DATA),名称不用去管

3、然后打开CMD,继续执行以下命令

C:\Documents and Settings\Administrator>cd f:\shp_data
C:\Documents and Settings\Administrator>f:
F:\SHP_DATA> //转入放置shp数据的目录
下面的命令很关键
F:\SHP_DATA>shp2sdo WHXY_WHXY_MRWTR_C WHXY_WHXY_MRWTR_C-i id -s 4326 -g GWM_GEOMETRY -d
各个参数说明:

shp2sdo-----下载的工具,WHXY_WHXY_MRWTR_C------第一个为需要转换的shp文件名称,第二个是存入数据库以后对应的表名,根据实际情况自己进行改变

-i------定义主键,主键为id

-s------指定生成srid(即采用什么坐标),一般使用4326,即geoserver发布时使用的坐标系EPSG:4326

-g------指定sdo_geometry,默认是GEOM,此选项一般使用默认即可,这个值跟后面建立索引关系很大,我这里用的是GWM_GEOMETRY

-d------是将生成的dat文件和ctl文件合并为一个ctl文件的设置

4、执行完上述命令后,会发现F:\SHP_DATA文件夹下,多了两个文件,一个为WHXY_WHXY_MRWTR_C.sql,另一个是WHXY_WHXY_MRWTR_C.ctl

5、进行入库操作

F:\SHP_DATA>sqlplusszfxya/admin@orcl //登录Oracle数据库操作,根据实际变化
SQL>@WHXY_WHXY_MRWTR_C.sql //根据生成的sql创建表
SQL>quit //退出登录
F:\SHP_DATA>sqlldr szfxya/admin@orcl WHXY_WHXY_MRWTR_C //导入数据

6、Oracle数据处理(建立索引)

用CMD重复登录数据库操作,建立索引,一定切记语句结束后要带分号

CREATE INDEX WHXY_WHXY_MRWTR_C_idx ON WHXY_WHXY_MRWTR_C(GWM_GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

WHXY_WHXY_MRWTR_C_idx-------为索引名称,自己命名

WHXY_WHXY_MRWTR_C-----导入数据的表名

GWM_GEOMETRY------该参数必须和生成sql时的-g参数保持一致,如果-g为默认参数geom,那么这里也应当响应的变为geom

7、Oracle数据处理(对Oracle地理空间数据必须进行升级,否则有可能会报错。

EXECUTE 
SDO_MIGRATE.TO_CURRENT('WHXY_WHXY_MRWTR_C','GWM_GEOMETRY')
WHXY_WHXY_MRWTR_C(为导入数据的表名)
GWM_GEOMETRY(为创建WHXY_WHXY_MRWTR_C.sql时-d的参数)

如果没有这一步,geoserver发布图层后,Tomcat后台可能会报错误:

[geoserver.ows] Rendering process failed Caused by:java.lang.ArithmeticException: /by zero,而图层也不难正常显示,会报Rendering process failed /by zero错误本篇所述操作,参照下面文章

http://www.haogongju.net/art/605230 http://www.cnblogs.com/freetofly/articles/1025594.html http://hi.baidu.com/zhyiwww/blog/item/6be2c25cfb324d44fbf2c0be.html

二、geoserver发布oracle地图数据

经过上部分的shp文件的处理,存入了oracle数据库,然后就是geoserver的发布了

1、下载自己geoserver版本对于的oracle的Jar包,如果geoserver版本为2.1.2,其他版本直接把下面地址的版本号一改好了

http://ncu.dl.sourceforge.net/project/geoserver/GeoServer%20Extensions/2.1.2/geoserver-2.1.2-oracle-plugin.zip

2、将该压缩包解压,将gt-jdbc-oracle-2.7.3放入geoserver/web-info/lib中将ojdbc14放入tomcat的根目录下的lib文件夹中,从oracle的安装目录下搜索classes12的Jar包,并将其复制到geoserver/web-info/lib中(这步非常重要,否则后面添加Oracle数据源的时候会添加不上)

3、打开geoserver的地址,添加Stores,然后选择Oracle NG就可以 然后填写相应的属性值,添加完数据源以后,将相应的表添加至图层。

关注“开源集思”公众号
获取免费资源

随机推荐


Copyright © from 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org