记录一下自己安装配置PostgreSQL环境的历程。
PostgreSQL和PostGIS的下载和安装参考PostGIS的安装与初步使用的第一部分。后续转到本文。
ArcGIS pro 2.7.0
postgreSQL 13.3
postGIS 3.1.2
psql内
SELECT version();
psql内
SELECT PostGIS_full_version();
打开软件,查看【关于】
用pgAdmin 4图形界面完成创建。
1 打开Admin 4,位于开始->所有程序->PostgreSQL 13下面,因为我安装的postgreSQL是13.多少的版本
2 登录到服务器,即连接,登录帐号为超级用户postgres和自己在安装时候设置的密码。
3 创建空间数据库。新建数据库,设置数据库名为test,用户为postgres。切换到Definition面板。
Encoding: UTF-8
Template: postgis_31_sample(安装时创建的模板)
Tablespace: pg_default
经过前面的步骤,已经建好了功能完善的但还没有空间数据的空间数据库,接下来的工作是将空间数据导入到刚建立的数据库中。而最简单的方式是导入Shapefile格式的空间数据。PostGIS提供了PostGIS PostGIS Bundle 3 for PostgreSQL x64 13 Shapefile and DBF Loader Exporter图形化界面工具(旧版本名字为"PostGIS Shape Import/Export Manager")来帮助完成Shapefile空间数据的导入与导出。
在使用该工具前,需要先明确空间数据的SRID,即空间引用标识符。获取方式看pgAdmin查询SRID方法
查询知道芝加哥的WGS84投影对应SRID=32610
这里必须要SRID才能导入成功
首先单击"View connection details"按钮,打开"PostGIS connection"对话框,输入用户名"postgres"及其对应的密码,设置连接的数据库为test(与截图不一样),如下图所示:
连接成功则提示:
Connection succeeded.
Connecting: host=localhost port=5432 user=postgres password=’****’ dbname=Chicago client_encoding=UTF8
有信息错误导致连接失败则提示Connection failed.
连接数据库之后,单击"Add file"按钮,加入.shp文件。
注:这里导入的SHP必须路径全英文,而且必须是基于空间数据模板才行。
将其SRID设置为对应,如下图所示。这一步绝对不能省略,否则不能正确导入数据。
最后单击"Import"按钮导入数据。
可以在pgAdmin 4中通过查看对应数据库在"架构“的public数据表中是否增加了对应架构,来判断数据是否成功导入。这里因为shp命名奇怪所以也就是对应的这个奇怪的名字。
注:只是连接,不发布的话,可以不安装ArcGIS Server
如果用ArcGIS pro连接,目前实验结果是不需要做准备工作这一步。具体参考官方文档4号
原本要求的操作(用ArcMap10.2连接版本):将ArcGIS10.2中的pgsqlengine.dll和st_geometry.dll拷贝到PostgreSQL的lib文件下。
从ArcGIS 10.2复制了该文件,路径如下,到PostgreSQL的lib目录下。
D:\Program Files (x86)\Arcgis_installfiles\installFiles\Desktop10.2\DatabaseSupport\PostgreSQL\Windows64
D:\Program Files\PostgreSQL\13\lib
但由于现在使用ArcGIS pro,文件夹路径里这两个文件都没有。
于是网上找了ArcGIS 10.8的pgsqlengine.dll文件放入,找了本机的ArcGIS 10.2 的st_geometry.dll文件放入。
必须将 st_geometry.dll 文件放在 PostgreSQL lib 目录下,然后才能创建地理数据库。
这里贴一下找到的pgsqlengine.dll文件资源(10.7和10.8版):
链接:https://pan.baidu.com/s/1Le07s_CCuI2Ec23Cp9gv7w
提取码:vq6b
配置PostgreSQL实现TCP/IP访问连接,修改pg_hba.conf和pg_hba.conf文件(这里我没有进行改动)
修改配置后需要重启服务:
删除pgsqlengine.dll文件,仍然能创建数据库连接。
删除st文件,仍然能创建数据库连接。
修改回.conf文件,仍然能创建数据库连接。
最后处理结果:两个文件先放回去,以防之后配置ArcMap 10.2访问。记住到时候要修改pgsqlengine.dll文件为10.2版本对应的。
PostGIS并没有提供工具以地图的方式查看空间数据,不过我们可以使用ArcGIS pro等客户端GIS来查看。
打开ArcGIS pro,插入->连接->新数据库连接。注意实例填写localhost,不然无法建立数据库连接(即数据库下拉栏无法加载,提示连接错误:无法连接到数据库服务器来检索数据库列表)
1 ArcGIS pro帮助/数据/数据库/支持的数据库
2 适用于 ArcGIS 10.8.x 以及 ArcGIS Pro 2.5、2.6 和 2.7 的 PostgreSQL 数据库要求
3 ArcGIS pro帮助/数据/数据库/连接到数据库/ArcGIS Pro 中的数据库连接
4 从 ArcGIS 连接到 PostgreSQL
5 教程参考:postgis安装_GIS Experience (四):ArcGIS Desktop直连PostgreSQL安装及配置和PostGIS教程四:加载空间数据