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

GeoServer发布Oracle Spatial图层

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

首先,到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 的标签呢?这是为什么呢?