• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    如何使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中

    发布者: 福建二哥 | 发布时间: 2025-6-18 09:27| 查看数: 51| 评论数: 0|帖子模式

    数据下载

    数据下载地址:https://datav.aliyun.com/portal/school/atlas/area_selector
    我这里下载全国所有城市的数据进行导入


    下载安装GDAL

    以下是安装 ogr2ogr(GDAL 工具集的一部分)的步骤,适用于 Windows、macOS 和 Linux 系统。
    1. Windows系统安装GDAL
    复制代码
    下载 GDAL:
    下载 GDAL:

    • 访问 GISInternals 或 OSGeo4W 下载 GDAL 安装包。
    • 选择适合你系统的版本(通常是 32 位或 64 位)。
    安装:

    • 下载后,运行安装程序,并按照提示完成安装。
    • 确保选择安装命令行工具。
    配置环境变量:

    • 右键点击“此电脑”或“我的电脑”,选择“属性”。
    • 点击“高级系统设置” > “环境变量”。
    • 在“系统变量”中找到 Path,点击“编辑”。
    • 添加 GDAL 的安装路径(例如:C:\Program Files\GDAL)。
    验证安装:

    • 打开命令提示符,输入以下命令:
    1. ogr2ogr --version
    复制代码
    如果显示版本信息,说明安装成功。
    1. macOS系统安装GDAL
    复制代码
    使用 Homebrew 安装: 如果没有安装 Homebrew,可以先在终端执行以下命令安装:
    1. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    复制代码
    安装 GDAL:
    1. brew install gdal
    复制代码
    验证安装: 在终端输入:
    确认安装成功。
    1. Linux系统安装GDAL
    复制代码
    Debian/Ubuntu 系统:
    打开终端,运行以下命令:
    1. sudo apt update
    2. sudo apt install gdal-bin
    复制代码
    Red Hat/Fedora 系统:
    使用以下命令:
    1. sudo dnf install gdal
    复制代码
    验证安装:
    在终端输入:
    1. ogr2ogr --version
    复制代码
    如果显示版本信息,说明安装成功。
    我这里使用的是Ubuntu系统,按照成功会有以下提示:

    在PostgreSql中创建表
    GeoJSON 数据包含多个坐标并且表示一个多边形(Polygon),需要相应地调整表设计以支持存储 Polygon 类型的几何数据。
    1. CREATE TABLE geo_data (
    2.     id SERIAL PRIMARY KEY,          -- 唯一标识符
    3.     name VARCHAR(100),              -- 地物名称
    4.     description TEXT,               -- 描述(可选)
    5.     type VARCHAR(50),               -- GeoJSON 类型(例如 "Feature")
    6.     geom GEOMETRY(Polygon, 4326),   -- 空间数据,使用 Polygon 类型
    7.     properties JSONB,               -- 任意属性,使用 JSONB 存储
    8.     created_at TIMESTAMP DEFAULT NOW(), -- 创建时间
    9.     updated_at TIMESTAMP DEFAULT NOW()  -- 更新时间
    10. );
    复制代码
    1. 字段说明
    复制代码

    • id: 唯一标识符,自动递增。
    • name: 地物名称。
    • description: 对地物的详细描述。
    • type: GeoJSON 对象的类型,通常是 “Feature”。
    • geom: 存储 Polygon 类型的地理数据,使用 PostGIS 的 GEOMETRY 类型,并指定坐标系(这里使用 WGS 84,EPSG:4326)。
    • properties: 使用 JSONB 类型存储与地物相关的其他任意属性。
    • created_at: 记录创建时间。
    • updated_at: 记录最后更新时间。
    1. 索引
    复制代码
    为了提高对空间数据的查询性能,可以创建空间索引:
    1. CREATE INDEX idx_geom ON geo_data USING GIST (geom);
    复制代码
    1. GeoJSON 示例
    复制代码
    GeoJSON 数据可能类似于以下结构:
    1. {
    2.   "type": "Feature",
    3.   "properties": {
    4.     "name": "Example Polygon",
    5.     "description": "A sample polygon feature."
    6.   },
    7.   "geometry": {
    8.     "type": "Polygon",
    9.     "coordinates": [
    10.       [
    11.         [102.0, 0.0],
    12.         [103.0, 0.0],
    13.         [103.0, 1.0],
    14.         [102.0, 1.0],
    15.         [102.0, 0.0]
    16.       ]
    17.     ]
    18.   }
    19. }
    复制代码
    ogr2ogr导入数据到表中
    1. ogr2ogr -f "PostgreSQL" PG:"host=localhost dbname=your_db user=your_user password=your_password" your_data.geojson -nln geo_data -overwrite
    复制代码

    • your_db:你的数据库名。
    • your_user:数据库用户名。
    • your_password:数据库密码。
    • your_data.geojson:你的 GeoJSON 文件名。
    • geo_data:目标表名。

    导入完成后即可在表中查询到

    到此这篇关于使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中的文章就介绍到这了,更多相关GeoJSON数据导入到PostgreSql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/database/329534de6.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表