从shp数据存入Oracle到geoserver发布地图数据
来源:互联网 发布:微处理器和单片机 编辑:程序博客网 时间:2024/05/20 05:30
这两天由于项目原因,需要将shp数据存入Oracle,并有geoserver发布,频繁出现问题,感谢网络,最终让我解决了我所碰到的这些问题。
第一部分: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地理空间数据进行升级)------------------必须,要不然有可能会报错,我就遇到了,查找了半天,总算解决
用CMD重复登录数据库操作
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后台可能会报ERROR: [geoserver.ows] Rendering process failed
Caused by:java.lang.ArithmeticException: /by zero,而图层也不难正常显示,会报Rendering process failed /by zero错误
本篇所述操作,参照以下文章
http://www.haogongju.net/art/605230http://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就可以
然后填写相应的属性值
好了,添加完数据源以后,将相应的表添加至图层,一切完毕~~
- 从shp数据存入Oracle到geoserver发布地图数据
- Geoserver 图层数据服务发布(.shp)
- GeoServer快速发布地图数据
- geoserver 发布shp数据时中文乱码问题
- Geoserver发布PostGIS地图数据:问题记录
- 用GeoServer发布本地Shapefile地图数据
- Geoserver地图数据
- uDig+Geoserver 发布shp
- GeoServer发布PostGIS数据
- 使用GeoServer发布shp数据为WMS服务和WFS服务(图文教程)
- 使用GeoServer发布shp数据为WMS服务和WFS服务
- 通过ArcMap查看发布在geoserver中的地图数据
- GeoServer基础教程(三):部署发布Shapefile地图数据
- 全国SHP地图数据赠送
- ArcSDE for Oracle 11G 安装 + Geoserver 发布ArcSDE 数据
- 利用geoserver-manager发布shp
- geoserver rest方式发布shp
- Geoserver数据发布中的参数设置
- UVA 10303 How Many Trees?
- C++ 特性和接口实现原则
- 1000以内的完数
- 函数专题:sum、row_number、count、rank\dense_rank over
- vmware linux mount U盘
- 从shp数据存入Oracle到geoserver发布地图数据
- cocos2d-x游戏开发(十二)场景切换:滑门效果
- 实践使用WinDBG从虚拟地址转换到物理地址
- Chrome 较简单修改 缓存路径 的方法
- ByteArrayOutputStream和ByteArrayInputStream详解
- 搭建struts2 + spring + hibernate(二):XML、代码篇
- ByteArrayOutputStream和ByteArrayInputStream详解
- How to Run Standard OA Framework Pages from JDeveloper
- EhCache实例