Geoserver发布Oracle地图切片
1.环境准备
①Oracle client客户端
②Geoserver (安装前需要java环境,最好1.8)
③PL/SQL
④shp2sdo(shp导入oracle)
打开上面网址可下载

如果是windows系统,就选择nt下的文件
⑤oracle数据源插件(插件的版本需要和GeoServer保持一致)
下载之后geoserver-2.13.0-oracle-plugin解压,将里面的gt-jdbc-oracle-X.X.jar包复制到geoserver目录下web-info/lib目录中,然后再把与你数据库匹配的ojdbc驱动包也复制到这个目录里。
⑥geoserver-2.13-SNAPSHOT-vectortiles-plugin(发布矢量切片需要)
解压之后把里面的jar包复制到geoserver目录下web-info/lib目录中
2.shp数据入库
2.1 具体步骤(导入前需要确保没有中文字段)
2.1.1命令行指向要导入的shp文件
为方便操作,将shp2sdo文件和需要导入oracle的数据放入同一文件夹

2.1.2利用shp2sdo将shp转换为导入文件
输入命令行:
shp2sdo [shp文件名] [表名] -i id -s [坐标系编码] -g MY_GEOMETRY -d
其中,
-i 是设置主键,-g 是给空间数据字段起个名字,不写默认是geom,-d 是把dat数据文件合并到ctl文件里。-s 是坐标系编码。
执行成功如下图所示

这时我们的文件夹里生成了两个文件: GEO_GD_SEGMENT_PL3.sql文件和GEO_GD_SEGMENT_PL3.ctl文件,分别是建表脚本和数据脚本。
2.1.3执行脚本建表并导入数据
首先登陆到数据库中 :sqlplus imcp_trangis_v20/imcp_trangis_v20@uboss143
然后输入:
SQL>@D:\sjz_shuangxian\GEO_GD_SEGMENT_PL_SJZ_D30.sql (sql文件的绝对路径)

2.1.4通过sqlldr将数据导入到创建的表中(利用GEO_GD_SEGMENT_PL3.ctl)
sqlldr imcp_trangis_v20/imcp_trangis_v20@uboss143 GEO_GD_SEGMENT_PL_SJZ_D30

2.1.5将数据升级到与Oracle对应的版本上
首先再次连接到数据库上,然后输入:
SQL> execute sdo_migrate.to_current(‘GEO_GD_SEGMENT_PL_SJZ_D30’);
2.1.6 建立索引
用CMD重复登录数据库操作,建立索引,切记语句结束后要带分号
CREATE INDEX GEO_GD_SEGMENT_PL_SJZ_D30_idx ON GEO_GD_SEGMENT_PL_SJZ_D30 (MY_GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
GEO_GD_SEGMENT_PL3_idx ——-为索引名称,自己命名
GEO_GD_SEGMENT_PL3 —-导入数据的表名
MY_GEOMETRY ——该参数必须和生成sql时的-g参数保持一致,如果-g为默认参数geom。

创建完成,即可进行GeoServer数据的发布。
3.使用Geoserver发布地图
①安装并运行GeoServer(安装时候会设置端口号和账号密码)
默认登录密码admin/geoserver
进入如下页面即可

②新建工作区后建立数据存储(新建存储)
这里数据来源选择Oracle NG,并进行数据库参数配置


③新建图层,选择自己的工作区和数据存储,就能看到自己数据库中的所有数据,点击数据右面的发布。

④进行发布数据的参数配置,数据项和切片处理项
数据项需要设置从数据计算边框和坐标系
切片处理项需要设置图片的格式(矢量切片选上GeoJson)和GridSet(根据需要修改,这里选择4326的方式)
gridset可以设置切片等级,如有需要可以自己新建,建立切片等级。
点击确定,矢量切片数据发布成功

注意点:
此处发布的oracle数据源不要有中文字段。
执行SQL命令需要oracle客户端,如果plsql无法绑定客户端也可以绑定instantclient_11_2,但是oracle客户端必须要下载。
Service Data Objects (SDO)是一种针对在不同的数据源之间使用统一的数据编程模型的规范说明(is a specification for a programming model that unifies data programming across data source types)。为通用的应用程序模提供健壮(robust)的支持,使应用程序、工具、框架等更容易的进行数据的增、删、查、改、约束、更新等操作。
转载自:https://blog.csdn.net/dz18360538869/article/details/80510116