从SHP数据存入Oracle到geoserver发布地图数据.doc
文本预览下载声明
SHP数据导入ORACLE 数据库,并使用geoserver发布地图
第一部分:shp数据存入Oracle
1、下载shp2sdo.exe?工具(),本来就是Oracle的一个工具,直接放到自己的Oracle安装目录X:\oracle\product\10.2.0\db_1\BIN下面就好了
2、将要转的shp文件放到某个目录下(:\jiangsu_sh),名称无所谓了
3、打开CMD,执行以下命令
???? C:\Documents and Settings\Administratorcd :\jiangsu_sh
?????C:\Documents and Settings\Administratorf:
?????D:\jiangsu_shp???????????????????????????????????????????????????????????????//转入放置shp数据的目录
下面的命令很关键???? ?:\jiangsu_shpshp2sdo?JIANGSU JAINGSU_MAP -i id -s?4326 -g GWM_GEOMETRY -d
??? 各个参数说明:
??? shp2sdo-----下载的工具
??? ------第一个为需要转换的shp文件名称,第二个是存入数据库以后对应的表名,根据实际情况自行变化
??? -i------定义主键,主键为id
??? -s------指定生成srid(即采用什么坐标),一般使用4326,即geoserver发布时使用的坐标系EPSG:4326
??? -g------指定sdo_geometry,默认是GEOM,此选项一般使用默认即可,这个值跟后面建立索引关系很大,我这里用的是GWM_GEOMETRY
??? -d------是将生成的dat文件和ctl文件合并为一个ctl文件的设置
4、执行完上述命令后,是不是发现:\jiangsu_shp文件夹下,多了两个文件?一个sql,一个.ctl
5、开始入库操作
:\jiangsu_shpsqlplus system/admin@orcl???????? //登录Oracle数据库操作,根据实际变化
SQL@sql???????????? //根据生成的sql创建表
SQLquit?????????????????????????????????????????????????????????//退出登录
:\jiangsu_shpsqlldr system/admin@orcl?JIANGSU_MAP.ctl???????? //导入数据
别急,这离成功还有很长一段距离
6、Oracle数据处理(建立索引)
用CMD重复登录数据库操作,建立索引,切记语句结束后要带分号
CREATE INDEX ON JIANGSU(GWM_GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
JIANGSU_ID ------为索引名称,自己命名
----导入数据的表名
GWM_GEOMETRY------该参数必须和生成sql时的-g参数保持一致,如果-g为默认参数geom,那么这里也应当响应的变为geom
7、Oracle数据处理(对Oracle地理空间数据进行升级)------------------要不然有可能会报错
用CMD重复登录数据库操作
EXECUTE SDO_MIGRATE.TO_CURRENT(,GWM_GEOMETRY)
JIANGSU------为导入数据的表名
GWM_GEOMETRY------为创建WHXY_WHXY_MRWTR_C.sql时-d的参数
没有这一步,geoserver发布图层后,Tomcat后台可能会报ERROR: [geoserver.ows] Rendering process? failedCaused by:java.lang.ArithmeticException: /by zero,而图层也不正常显示,会报Rendering process? failed /by zero错误
geoserver发布oracle地图数据
经过第一部分的shp文件的处理,存入了oracle数据库,接下来就是geoserver的发布了
把geoserver.war运行起来后,默认在data下的stores下是没有oracle选项的,下载自己geoserver版本对的oracle的Jar包,我的geoserver版本为2..4(已提供),其他版本直接把下面地址的版本号一改好了
将该压缩包解压,将gt-jdbc-oracle-2..4中的包gt-jdbc-oracle-8.6.jar和ojdbc14.jar放入geoserver/web-in
显示全部