首先,到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,转载请注明出处/)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于