PostgreSQL:http://www.postgresql.org/
PostGIS:http://postgis.refractions.net/
PostGIS Manual:http://postgis.refractions.net/documentation/manual-1.3/
安装PostgreSQL
这里没有使用SDE自带的PostgreSQL,而是独立的PostgreSQL 8.3.6.
安装PostGIS扩展
可以通过PostgreSQL的Application Stack Builder安装,或者下载独立安装包。这里下载了PostGIS 1.3.5安装包进行安装。
这个版本在安装PostGIS的时候会提示错误,原因是PostgreSQL锁住了这个文件,因此先停掉PostgreSQL,但安装完成后必然造成初始化PostGIS数据库失败,可以在PostgreSQL启动后再运行一次PostGIS安装程序,再见到这个错误的时候忽略。
这时通过pgAdmin连接到数据库,可以看到PostGIS创建了相关的数据库。
安装ArcSDE for PostgreSQL
在安装ArcSDE for PostgreSQL之前,首先新建一个基于PostGIS模板的数据库用于ArcSDE。注意,使用sde角色需要有管理员权限并可创建数据库对象。
然后安装ArcSDE相关程序文件,接着运行Post Installation。
我们希望SDE在保存数据的时候使用PG_GEOMETRY格式保存空间数据,而不是默认的ST_GEOMETRY,因为使用PG_GEOMETRY格式可以使用PostGIS的功能。这里需要自定义“dbtune.sde”文件 。将这个文件备份后,修改以下这段:
GEOMETRY_STORAGE "ST_GEOMETRY"
为:
GEOMETRY_STORAGE "PG_GEOMETRY"
然后,选择这个修改过的“dbtune.sde”文件。
以下与其它ArcSDE Post Installation类似。
测试SDE图层使用PostGIS功能
在ArcCatalog中新建到ArcSDE的连接:
然后使用ArcCatalog导入若干Feature Class到SDE,这里使用了Sample的World中的cities等图层进行测试:
打开pgAdmin,刷新sde数据库中的sde模式,查询cities表:
下面测试一下不通过ArcSDE直接对这个表进行PostGIS空间查询。打开SQL命令窗口,测试使用如下SQL:
SELECT * FROM cities WHERE ST_Distance(shape, GeomFromText('POINT(116.39 39.9)', 4326))<10
以上空间查询SQL代表查找在4326空间参考下,与点(116.39, 39.9)【北京附近】距离10以内的所有城市,查询结果如下,总共29条记录:
2009年4月22日星期三
订阅:
博文评论 (Atom)
3 条评论:
大哥,你的文章写的棒极了,既诙谐又深刻,颁个若贝尔文学奖给你也不为过,可是你的文章出的太慢了,我真是有点等不及啊,先少玩会魔兽啊,等你杰作大功告成,我陪你玩,保证让你爽死。。。
你的文章非常的棒,对我帮助很大,我想问一下Post Installation ,能否把具体的配置过程讲的更加详细一点,SDE与PostGIS的集成
已经很详细了,主要就是dbtune的修改
发表评论