postgis导入失败 解决方法

本次在导入shp数据时出现显示以下信息,导入失败,经过查询,解决方法如下。

失败信息:

==============================
...
Shapefile type: Point
PostGIS type: POINT[2]
Shapefile import failed.

解决方法如下:

执行以下的sql语句:
- 启用PostGIS(包括栅格)
CREATE EXTENSION postgis;


- 启用拓扑
CREATE EXTENSION postgis_topology;


- Tiger
CREATE EXTENSION fuzzystrmatch ;


- 启用美国Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;

之后导入成功

### 使用 PostGIS 导入 SHP 文件 为了成功将 SHP 文件导入 PostgreSQL 数据库并利用 PostGIS 的功能,需遵循一系列特定的操作流程。 #### 创建支持 GIS 功能的数据库环境 确保所使用的 PostgreSQL 数据库已具备处理地理空间数据的能力。这涉及向目标数据库添加必要的扩展组件[^2]: - `fuzzystrmatch`:用于字符串相似度匹配的功能模块; - `postgis`:核心的空间对象类型及其函数集合; - `postgis_tiger_geocoder` 和 `postgis_topology`:提供额外的地名编码及拓扑结构操作能力。 这些扩展可通过 SQL 命令或图形界面工具来完成部署。 #### 准备工作 确认待上传的数据集(即 SHP 文件及相关辅助文件如 DBF、PRJ 等)位于同一目录下,并保持命名一致性以避免潜在错误[^4]。此外,应尽量简化文件路径,防止因过长而引发的技术难题。 #### 执行导入命令 采用 `shp2pgsql` 工具执行实际的数据迁移任务。此工具能够读取本地磁盘上的 Shapefile 并将其转化为适用于 PostgreSQL/PostGIS 表格的形式。具体指令如下所示[^1]: ```bash shp2pgsql -c -s 4326 /path/to/your/shpfile.shp target_table_name | psql -d destination_dbname -U username ``` 其中: - `-c`: 指定创建新的表格而非追加现有表; - `-s 4326`: 设定输入坐标系统的 EPSG 编码为 WGS84 (经纬度),可根据实际情况调整; - `/path/to/your/shpfile.shp`: 完整路径指向源 SHP 文件位置; - `target_table_name`: 自定义的目标表格名称; - `destination_dbname`: 目标数据库的名字; - `username`: 登录 PostgreSQL 实例所需的用户名。 以上步骤完成后即可实现从 SHP 到 PostGIS 数据库的有效传输。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值