使用GeoServer发布ArcSDE 9.3数据

来源:互联网 发布:淘宝到家服务 编辑:程序博客网 时间:2024/05/21 06:34

【环境】GeoServer 1.7.0 RC2,ArcSDE 9.3
【先决条件】安装ArcSDE SDK (java)

对于GeoServer 1.7以前的版本,官方文档支持ArcSDE9.2 sp2及以前版本,但我尝试连接9.3的SDE失败。GeoServer 1.7采用的是GeoTools 2.5,与之前的版本不同,因此我又尝试了这个版本+最新的SDE SDK,发布服务成功。


1.安装GeoServer、GeoServer ArcSDE 扩展及其依赖项

下载GeoServer:http://geoserver.org/display/GEOS/GeoServer+1.7.0-RC2,该页面也包含了ArcSDE Extension的下载链接。

首先安装GeoServer,安装完成以后,将ArcSDE Extension压缩包中的所有文件解压缩到GeoServer的lib目录:%GeoServer 1.7.0-RC2%webappsgeoserverWEB-INFlib。

由于ArcSDE扩展依赖ArcSDE SDK,因此还需要将%ArcGIS%ArcSDElib下的所有jar包复制到GeoServer的lib目录。

通过开始菜单启动GeoServer。


2.配置GeoServer连接ArcSDE

通过http://localhost:8080/geoserver 访问GeoServer Administrator。

首先进入“配置-数据-名称空间 ”,新建自己的名称空间,完成后点击左侧的“保存”。


进入“配置-数据-数据库”,点击“新建”,在这里需要新建一个SDE数据库连接。


进入“配置-数据-FeatureTypes”,点击“新建”,在这里通过一个SDE图层来发布一个FeatureType。这里发布了一个图层,在GeoServer中命名为“bj_road”。完成后点击左侧的“保存”、“应用”。


打开http://localhost:8080/geoserver/mapPreview.do,查看当前发布的SDE图层,选择合适的方式预览。下图是上面发布的bj_road的SVG预览。



3.获得kml服务

GeoServer的kml服务地址如下:http://localhost:8080/geoserver/wms/kml_reflect?layers=<名称空间>:<图层别名>,比如上面发布的bj_road,它的kml地址就是http://localhost:8080/geoserver/wms/kml_reflect?layers=wuyf:bj_road,将这个地址添加到Google Earth或者其它支持kml的客户端就可以对SDE图层数据进行查看了。