真是被书本气死了,说什么只能在Linux下跑PostGIS,人家官网上明明就有WINDOWS的安装包嘛。那就先简单化,玩Windows版的。主要还是因为虚拟机上的CentOS网络配置让我弄乱了,得抽个时间理一理。开始安装吧。
1. 安装 PostgreSQL,http://www.enterprisedb.com/products-services-training/pgdownload#windows。
基本上一路Next就可以了,需要注意的是,安装成功后会提示是否启动Stack Builder。这里为了方便安装PostGIS,建议启动。
2. Install PostGIS.
第一步完成后,从 Stack Builder的Application目录里找到Spatial Extensions,勾选上PostGIS。也可以不用这种方式,到http://postgis.refractions.net/download/windows/下载离线安装包。
3. 创建数据库。
第二步完成后,勾选上Create Spatial Database,创建数据库。当然也可以在之后用命令或图像界面来创建。
输入前面第一步安装时的密码,用管理员账户登录。
输入要创建的数据库名字。
4. 配置。
为了方便操作,最好把 PostgreSQL 安装目录下的bin目录加到path环境变量。
按照书上要求加一个扩展,不过貌似已经装好了,图形化安装就是好啊。
createlang -U postgres plpgsql osmosis
创建用户:createuser -U postgres osmosisuser
执行SQL脚本,给数据库安装扩展。
psql -U postgres -d osmosis -f C:\temp\postgis.sql
实际脚本路径应该在C:/Program Files/PostgreSQL/9.0/share/contrib/postgis-1.5/postgis.sql,因为有空格,临时拷到另一个路径执行的。
接下来连到osmosis数据库,需要进行授权等相关操作。有两种方式:图形化工具和命令行。咱就用命令行吧。
图形化菜单。
命令行:psql -U postgres -d osmosis
授权:grant all privileges on database osmosis to osmosisuser;
改变属主:alter table geometry_columns owner to osmosisuser;
alter table spatial_ref_sys owner to osmosisuser;
到界面上刷一下,确认一下。
给 osmosisuser 加个密码:alter role osmosisuser password 'openstreetmap';
5. 创建 Osmosis 的Schema。
打开刚刚Check out 的代码(http://svn.openstreetmap.org/applications/utils/osmosis/),找到pgsimple_schema_0.6.sql。
执行命令:psql -d osmosis -U osmosisuser -W -f F:\workspace\osmosis\package\script\pgsimple_schema_0.6.sql
貌似一切正常,到图形界面看看吧。
多了不少表哦。至此环境算是搭好了。再一细看,PostGIS还是要依赖PostgreSQL,顶多只能算是PostgreSQL的一个插件吧。
接下来作者开始介绍如何通过osmosis修改Database的中的数据,由于需要Planet文件,手头上又没有,也就草草过了。具体可以参考官方的说明:http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage。最后作者还指出,可以自己扩展osmosis,参考http://wiki.openstreetmap.org/wiki/Osmosis/Writing_Plugins。
至此,这边书算是完结了。但感觉征程才刚刚开始,有很多点值得研究,比如OAuth,osmosis的命令处理方式等等。大师之路漫而修远,上下求索贵在坚持。