当前位置: 代码网 > it编程>数据库>Oracle > 如何使用GDAL库的ogr2ogr将GeoJSON数据导入到PostgreSql中

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

2024年11月25日 Oracle 我要评论
数据下载数据下载地址:https://datav.aliyun.com/portal/school/atlas/area_selector我这里下载全国所有城市的数据进行导入下载安装gdal以下是安装

数据下载

数据下载地址:https://datav.aliyun.com/portal/school/atlas/area_selector

我这里下载全国所有城市的数据进行导入

下载安装gdal

以下是安装 ogr2ogr(gdal 工具集的一部分)的步骤,适用于 windows、macos 和 linux 系统。

windows系统安装gdal

下载 gdal:

下载 gdal:

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

安装:

  • 下载后,运行安装程序,并按照提示完成安装。
  • 确保选择安装命令行工具。

配置环境变量:

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

验证安装:

  • 打开命令提示符,输入以下命令:
ogr2ogr --version

如果显示版本信息,说明安装成功。

macos系统安装gdal

使用 homebrew 安装: 如果没有安装 homebrew,可以先在终端执行以下命令安装:

/bin/bash -c "$(curl -fssl https://raw.githubusercontent.com/homebrew/install/head/install.sh)"

安装 gdal:

brew install gdal

验证安装: 在终端输入:

确认安装成功。

linux系统安装gdal

debian/ubuntu 系统:

打开终端,运行以下命令:

sudo apt update
sudo apt install gdal-bin

red hat/fedora 系统:

使用以下命令:

sudo dnf install gdal

验证安装:

在终端输入:

ogr2ogr --version

如果显示版本信息,说明安装成功。

我这里使用的是ubuntu系统,按照成功会有以下提示:

在这里插入图片描述

在postgresql中创建表

geojson 数据包含多个坐标并且表示一个多边形(polygon),需要相应地调整表设计以支持存储 polygon 类型的几何数据。

create table geo_data (
    id serial primary key,          -- 唯一标识符
    name varchar(100),              -- 地物名称
    description text,               -- 描述(可选)
    type varchar(50),               -- geojson 类型(例如 "feature")
    geom geometry(polygon, 4326),   -- 空间数据,使用 polygon 类型
    properties jsonb,               -- 任意属性,使用 jsonb 存储
    created_at timestamp default now(), -- 创建时间
    updated_at timestamp default now()  -- 更新时间
);

字段说明

  • id: 唯一标识符,自动递增。
  • name: 地物名称。
  • description: 对地物的详细描述。
  • type: geojson 对象的类型,通常是 “feature”。
  • geom: 存储 polygon 类型的地理数据,使用 postgis 的 geometry 类型,并指定坐标系(这里使用 wgs 84,epsg:4326)。
  • properties: 使用 jsonb 类型存储与地物相关的其他任意属性。
  • created_at: 记录创建时间。
  • updated_at: 记录最后更新时间。

索引

为了提高对空间数据的查询性能,可以创建空间索引:

create index idx_geom on geo_data using gist (geom);

geojson 示例

geojson 数据可能类似于以下结构:

{
  "type": "feature",
  "properties": {
    "name": "example polygon",
    "description": "a sample polygon feature."
  },
  "geometry": {
    "type": "polygon",
    "coordinates": [
      [
        [102.0, 0.0],
        [103.0, 0.0],
        [103.0, 1.0],
        [102.0, 1.0],
        [102.0, 0.0]
      ]
    ]
  }
}

ogr2ogr导入数据到表中

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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com