PostgreSQL+PostGIS安装以及使用

历史记录(最新见分割线以后)

安装,参照:    https://www.cnblogs.com/ytwy/p/6817179.html

创建企业级地理文件数据库时报错," You must copy the latest ST_GEOMETRY and dependent libraries to the PostgreSQL software location.",参照: 

http://blog.csdn.net/qingyimengwu/article/details/42719355  (注意路径"lib"不是"bin")

PostGIS中导入shp文件报错:  

PostGIS中dbf file (.dbf) can not be opened.shapefile import failed

参照:  

http://blog.csdn.net/gdp12315_gu/article/details/52120878

 

PostgreSQL地理数据库安装配置说明(前半部分有些误导人,新版本不需要那五个dll,只要参考一下他的那张图即可):

http://blog.csdn.net/liuniu1101/article/details/74435408

 

ArcGISDesktop官方文档:

http://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/gdbs-in-postgresql/get-started-gdb-in-postgresql.htm

配置postgreSQL允许外部连接:http://blog.51cto.com/fastkknd/698991

更多资料:

http://zhihu.esrichina.com.cn/article/3740

http://zhihu.esrichina.com.cn/article/1104

 

 


 

2021-11-08

前言

 已经几年没用PostgreSQL,第一次用的时候还是在做其实一直想再研究下QGIS+PostgreSQL+GeoServer+Openlayers技术栈,只是没有去实施。

背景

 最近客户那边的SQL Server数据库被漏洞修复的人给搞坏了,想着正好趁这个机会把PostgreSQL相关的研究一下。

环境

Windows 10(目前最新版本win11)

 ArcMap10.4.1 (目前最新版本10.8。为何要用10.4.1呢,也想用最新版本,但是条件不允许,现在全套能pj的最高版本也就是10.4.1吧,其实17年我就开始用10.5做AE的二次开发了,现在却沦落到用10.4)

QGIS 3.18(目前最新版本3.22)

PostgreSQL 9.4.5(64 位)(官网推荐是9.4.5,但是没有找到好用的安装包,所以用9.4.26替代。目前最新版本到14了,但是14安装后只有一个servers,展开后没有别的内容了,后来测试13没问题,但是13、14跟我都没关系,版本太高了。 PostgreSQL 版本选择取决于ArcMap的版本,因为要拷贝arcmap里面的文件,官网有版本要求)

PostGIS 2.2(目前最新版本是3.1,但是还是要根据arcmap的版本

过程

1.下载并安装PostgreSQL 9.4.26(64 位)(备用)

  注意的问题:①安装包要在官网下载,我觉得官网列出的都是经典版本,在别的网站下载安装后stack builder没法用(安装开始我就发现不一样,官网的安装包安装时开始会弹出一个自动安装C++的界面,这可能就是其他地方下载的安装包的问题所在)。当然也有另辟蹊径的解决方法,需要自己手动下载安装postgis,没人喜欢去找麻烦。

       ②安装路径最好不要装在C盘,会有一些权限的问题,建议直接把C改为D即可。

2.安装postgis

  1.建议直接用stack builder里的直接安装,安装过程会弹出一些警告,点确定就行了。注意选择正确的版本

    

 3.安装完成后打开pgAdminⅢ,新建数据库(记住数据库名称,下一步导入shp文件时需要填写)。然后找到架构→public,单击工具栏的“执行任意的SQL查询”,输入语句,按F5或者单击按钮执行查询:

  

1 create extension postgis;

 

  然后输入以下语句,执行查询,验证是否成功:

  

1 select postgis_full_version();

 4.打开postgis2.0 shapefile and dbf loader exporter, 按照以下顺序导入shp文件(路径不要有中文):

  

 

   

 

 完成后可以直接用QGIS连接查看修改数据内容:

          

 

 

 5.与arcmap结合

①如要允许网络中的其他计算机连接 PostgreSQL,则必须修改 pg_hba.conf 文件。

     默认如下:

  

 

  0.0.0.0代表本机上的所有IPV4地址,修改后的文件内容如下:

  

 

  然后新建入站规则,添加“5432”端口。

 

 ②复制st_geometry.dll(路径在“C:\Program Files (x86)\ArcGIS\Desktop10.4\DatabaseSupport\PostgreSQL\9.4\Windows64”)到“D:\Program Files\PostgreSQL\<PostgreSQL version>\lib”中

 ③先试试直接连接postgres数据库:

  

 

  发现是可以的,只不过里面的数据看起来跟arcmap创建的不一样,数据类型字段这里是geom,在sde里面的图标也不一样:

  

 

   ④接下来直接用arcmap来创建企业及数据库:

     

 

     

 

  再到“Add Database Connect”,至此sde创建完成:

     

 6.后续计划

    sde的内容还是挺多的,比如权限管理版本管理这些,都是挺实用的,经常看到有人问如何多人操作一个gdb文件,那只能用sde。另外据说postgis可以搞空间分析。今天遇到一个问题,arcmap里面修改属性表,在postgres数据库不同步,后续有时间再研究(单独写文章)。

 

 小结

1.目前版本方面主要还是受限于ArcMap,另外发现官网的帮助文档现在默认是10.6~10.8, 10.5版本以及以前的版本是显示“已存档”。

2.postgresql安装包要从官网下载,发现有的安装后stack builder无法使用,可能就是由于安装开始没有自动装VC++的原因。

3.今天在windows server2016服务器安装PostgreSQL,只有C盘一个盘,想用stack builder下载PostGIS时一直未响应,用管理员身份运行也是如此。然后我把安装路径改为我的电脑(远程服务器时映射过去的)D盘的某个文件夹,就可以正常下载了,可能是权限问题。  (2021.11.18)

参考网址

1.postgresql+postgis+pgrouting安装步骤图解(竟然可以路径分析,#以后或许会用到)

2.PostGIS教程三:创建空间数据库

3.postgresql 9.4.17 64位安装说明(外部连接问题)

4.pgAdmin无法远程访问postgresql

5. ArcGIS Desktop新建postgresql版sde(10.4.1)的连接

 

其他文章链接

 PostGIS学习记录

 

 

 

posted @ 2018-01-03 16:38  Youse的二分口粮地  阅读(679)  评论(0编辑  收藏  举报