首先,到 geoserver 官网 http://geoserver.org/release/maintain/ 下载 geoserver 的 war 包,丢到 web 容器(比如 tomcat)中,启动 web 容器。以 tomcat 为例,一切正常的话,启动完成后访问 http://localhost:8080/g ..

GeoServer发布Oracle Spatial图层

本贴最后更新于 1196 天前,其中的信息可能已经东海扬尘

首先,到 geoserver 官网 http://geoserver.org/release/maintain/ 下载 geoserver 的 war 包,丢到 web 容器(比如 tomcat)中,启动 web 容器。以 tomcat 为例,一切正常的话,启动完成后访问 http://localhost:8080/geoserver 就可以看到 geoserver 的管理界面了:(默认的登录账号是 admin , 密码 geoserver)

 


由于 geoserver 本身不支持 Oracle Spatial,所以我们要先安装插件:
到 https://sourceforge.net/projects/geoserver/files/GeoServer/ 下载相应版本的插件
一般路径为:  / 版本号 /extensions/geoserver-xxx-oracle-plugin.zip/

下载解压后得到的 jar 包,连同 ojdbcX.jar 一起丢到 geoserver\WEB-INF\lib 下,重启 tomcat

至此,GeoServer 发布 Oracle Spatial 图层所需的环境准备完毕。

 

-------------------------------------------------------

 


一般发布图层的流程是:
1、建立一个工作区,作为地图、数据等内容的存放仓库;
2、建立一个数据存储,作为地图的数据源;
3、在数据存储的基础上,建立一个图层;
4、配置图层的样式等。

这些功能,在管理界面的左侧都能找到:

 

在此之前,如果没有 Oracle Spatial 空间表,可按 http://database.51cto.com/art/201108/284867.htm 这个帖子中的例子建一个

感觉 oracle spatial 在插入数据时并没有做很严谨的校验,例如向二维对象中添加三围坐标、多边形的 ring 不闭合这些问题在插入时不会校验,而 geoserver 查询时会抛出异常。

所以,数据导入完成后,可以用这条 sql:

select SDO_UTIL.to_wktgeometry(shape) from WMS_DISASTER_VISUAL t 

测试一下是否所有的 shape 都能转为 WKT,若有问题逐一处理。


建立工作区:
工作区 -> 添加新的工作区 -> 输入名称和命名空间 -> 提交

 


建立 Oracle Spatial 数据存储
数据存储 -> 新建数据源 -> 选择 s 矢量数据源下的 Oracle NG, 到达新建矢量数据界面
工作区选择刚才新建的工作区,取一个数据源名称,填写 oracle 的连接参数、性能参数等。
注意:Geometry metadata table 这一项最好填上,对应 Oracle Spatial 的几何元数据表,一般表名是:user_sdo_geom_metadata

 

 

建立图层
图层 -> 添加新的资源 -> 新建图层 -> 选择一个数据存储 -> 配置新的 sql 视图, 到达 sql 视图界面。
输入视图名称和 sql(例如:select id,area_name,shape from WMS_DISASTER_VISUAL)。
把“Guess geometry type and srid”勾上,点击刷新,稍等片刻,就能加载出 sql 中的字段了,点击保存,完成图层的发布。

 

界面将自动跳转到编辑图层界面,输入图层全图范围,也可依次点击“从数据中计算”、“Compute from native bounds”自动得到。

样式配置位于“发布”选项卡下,可以点击 Styles 进行自定义样式的配置,各样式 xml 标签我也还没理清楚 --、慢慢摸索中,同时,要素标注 (Lable) 配置于样式中,设置了字体的话可能会导致中文乱码,这个问题也需要摸索一下。。

 

设置其它参数并保存,图层的发布就完成了。

完成后,可以点击 Layer Preview,在一个 openlayers 的地图中预览图层:

 

 (本文发布于http://www.wowtools.org/blog,转载请注明出处 /)

1 回帖   
请输入回帖内容...
  • zempty  

    为什么会有 GIS 的标签呢?这是为什么呢?