[安装和使用记录] postgis + postgresql

0 追本溯源

为什么函数名前缀为ST_?

官方说明
ST = Spatial Type
以ST_前缀开头的空间几何函数支持SQL/MM标准并符合开放地理空间联盟 (OGC) 的OpenGIS规范。

PostGIS has begun a transition from the existing naming convention to an SQL-MM-centric convention. As a result, most of the functions that you know and love have been renamed using the standard spatial type (ST) prefix. Previous functions are still available, though are not listed in this document where updated functions are equivalent. The non ST_ functions not listed in this documentation are deprecated and will be removed in a future release so STOP USING THEM.

机翻:
PostGIS已经开始从现有的命名约定向以sql - mm为中心的命名约定过渡。
因此,您所熟悉和喜爱的大多数函数都使用标准空间类型(ST)前缀重新命名。
以前的函数仍然可用,但是在更新后的函数是等价的情况下,本文档没有列出。
本文档中未列出的非ST_函数已弃用,并将在未来的版本中删除,因此停止使用它们。
在这里插入图片描述

空间几何函数有哪些

中文版本 https://help.aliyun.com/document_detail/67927.html
英文版本 https://postgis.net/docs/reference.html

1 安装问题

1.1 版本一定要匹配

postgis下载地址

postgresql下载地址
下载入口:
(有时候找到了入口并不一定能找到下载的直接地址)
https://postgis.net/windows_downloads/
https://www.postgresql.org/download/windows/

1.2 先安装postgresql再安装postgis

一般就是下一步下一步,遇到问题参考Q(question)列表,或者seo搜索。
postgresql配置

  1. 环境变量配置
    一般需要将postgresql的bin加入环境变量中,方便以后使用方便。

postgis安装

Q1 spatial database creation failed

createdb: 错误: 连接到"localhost" (::1)上的服务器,端口5432失败:Connection refused
(0x0000274D/10061)
服务器是否在该主机上运行并接受TCP/IP连接? 连接到"localhost" (127.0.0.1)上的服务器,端口5432失败:Connection refused (0x0000274D/10061)
服务器是否在该主机上运行并接受TCP/IP连接?

在这里插入图片描述
A: postgresql服务没起来,在服务种启动对应版的服务。
在这里插入图片描述
这个错误已经遇到好几次了,登录身份验证问题。只能启动一个,如下图。
在这里插入图片描述

Q2 create database 失败

我的是乱码,但可以猜测到原因

createdb: 错误: 创建数据库失败: 閿欒: 鏁版嵁搴?“postgis_31_sample” 宸茬粡瀛樺湪
感觉是数据库已经存在,重新安装数据库命名为postgis_14_sample成功 新的问题

A: 上一次安装时已经创建了postgis_31_sample,重新安装数据库命名为postgis_14_sample成功

2 使用问题

2.1 导入shp文件

Q1 无法启动postgis gui文件

shp2pgsql-gui.exe 由于找不到 libintl-9.dll,无法继续执行代码

在这里插入图片描述
A1 解决办法
这里只要找到 postgis 安装目录:C:Program FilesPostgreSQL11binpostgisgui,然后复制一份 libintl-8.dll 副本,改名为 libintl-9.dll 即可。

Q2 导入shp失败

在这里插入图片描述
A: 需要在新建数据库中,执行 create extension postgis;
在这里插入图片描述

Q3 注意事项

选择完一个和多个shp文件后需要在导入列表中手动更改你要导入的schema(目标架构名称)以及SRID(空间坐标系)。

Q4 PostGIS的SRID更新方法

text UpdateGeometrySRID(varchar table_name, varchar column_name, integer srid);
text UpdateGeometrySRID(varchar schema_name, varchar table_name, varchar column_name, integer srid)
text UpdateGeometrySRID(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name, integer srid);

举例说明
select UpdateGeometrySRID('tablename', 'geom', 4326);
srid可以通过数据库中spatial_ref_sys表格查询,如果没有,则可以自己添加一个PROJ4形式的坐标系参数。
查询SRID
select st_srid(geom) from table;

3 最后

配置好了ide,配置好数据库就可以愉快的撸码了,但问题的处理过程还是记录一下,下次一定还能碰到。

4 参考文章

Postgre及PostGIS安装和使用
PostGIS的SRID更新方法

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,可以得知postgis是一个用于处理地理空间数据的扩展库,而mybatisplus是一个基于mybatis的增强工具。 PostGIS是一个用于处理地理空间数据的开源扩展库,它可以在PostgreSQL数据库中存储地理空间数据,并提供了一系列的地理空间函数和操作符,使得可以对这些数据进行查询、分析和可视化等操作。 Mybatis-plus是一个基于Mybatis的增强工具,它提供了一系列的增强功能,包括自动生成代码、分页查询、逻辑删除等。通过配置相关的依赖和配置文件,可以很方便地使用Mybatis-plus来简化对数据库的操作。 所以,postgis和mybatis-plus是两个不同的工具,postgis主要用于处理地理空间数据,而mybatis-plus则是一个用于简化数据库操作的增强工具。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [PostgreSQL-PostGIS-TimescaleDB:PostgreSQL + PostGIS + TimescaleDB泊坞窗图片:elephant::globe_showing_...](https://download.csdn.net/download/weixin_42121412/19029619)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [springboot+mybatisplus+postgis实现几何点和线串增删改查分页](https://blog.csdn.net/m0_49382941/article/details/127013650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值