恭喜你,接下来就可以启动 PostgreSQL 了:
| pg_ctl -D /usr/local/pgsql/database/ -l /usr/local/pgsql/database/psql.log start |
PostgreSQL 安装好后
进入 postgres 账户,并且进入 PostgreSQL 控制台:
| $ sudo su postgres $ psql |
这时相当于系统用户 postgres 以同名数据库用户的身份,登录数据库,否则我们每次执行 psql 的时候都要在参数中指定用户,容易忘。
在 psql 中设置一下密码——需要注意的是,这里设置的密码并不是 postgres 系统帐户的密码,而是在数据库中的用户密码:
| postgres=# password postgres |
然后按照提示输入密码就好。
从源码安装 PostGIS
如果选择了从源码安装 PostgreSQL 的话,那么首先需要判断你安装的 PostgreSQL 是什么版本
然后,再到 PostGIS 的网页上去查其对应的是 PostGIS 的哪个版本。
最后,按照 PostGIS 的版本去下载对应的 source
最后的导入很麻烦,笔者就是卡在这一步,所以才最终放弃从源码安装的……
导入 PostGIS 扩展
根据 postgresql 和 postgis 的版本不同,路径会有些差异,主要是路径中包含版本信息:
| $ sudo su postgres $ createdb template_postgis $ createlang plpgsql template_postgis $ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/postgis.sql $ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/spatial_ref_sys.sql |
上面的操作中,创建了一个叫做 “template_postgis” 的空数据库。这个数据库是空的,并且属于 postgres 用户。注意,不要往这个数据库中添加数据,这个数据库之所以称为 “模板”(template),就说明它是用来派生用的。
相应的 PostGIS 路径可能不同,如果失败,就在上面的路径附近多尝试一下,找几个 .sql 文件试试看。
转换 .shp 文件到 PostGIS 数据库中
转换 .shp 到 .sql 文件
首先找到需要转换的文件,假设需要转换的 .shp 文件是:/tmp/demo.shp,那么就做以下操作:
| $ sudo su postgres $ cd /tmp $ shp2pgsql -W GBK -s 3857 ./demo.shp entry > demo.sql |
这里需要说明一下最后一句各部分所代表的含义:
-W GBK:如果你的 .shp 文件包含中文字符,那么请加上这个选项 -s 3857:指明文件的参考坐标系统。我的 .shp 文件使用的是 EPSG:3857 ./demo.shp:.shp 文件的路径 entry:表示要导入的数据库表名——假设这个 .shp 文件表示的是各个入口,所以我命名为 “entry” demo.sql得到了 .sql 文件后,就可以直接导入到 PostgreSQL 数据库了。
创建一个 PostGIS 数据库
这里就需要用到前面的 template 了。








