如何使用GDAL庫(kù)的ogr2ogr將GeoJSON數(shù)據(jù)導(dǎo)入到PostgreSql中
數(shù)據(jù)下載
數(shù)據(jù)下載地址:https://datav.aliyun.com/portal/school/atlas/area_selector
我這里下載全國(guó)所有城市的數(shù)據(jù)進(jìn)行導(dǎo)入
下載安裝GDAL
以下是安裝 ogr2ogr(GDAL 工具集的一部分)的步驟,適用于 Windows、macOS 和 Linux 系統(tǒng)。
Windows系統(tǒng)安裝GDAL
下載 GDAL:
下載 GDAL:
- 訪問(wèn) GISInternals 或 OSGeo4W 下載 GDAL 安裝包。
- 選擇適合你系統(tǒng)的版本(通常是 32 位或 64 位)。
安裝:
- 下載后,運(yùn)行安裝程序,并按照提示完成安裝。
- 確保選擇安裝命令行工具。
配置環(huán)境變量:
- 右鍵點(diǎn)擊“此電腦”或“我的電腦”,選擇“屬性”。
- 點(diǎn)擊“高級(jí)系統(tǒng)設(shè)置” > “環(huán)境變量”。
- 在“系統(tǒng)變量”中找到 Path,點(diǎn)擊“編輯”。
- 添加 GDAL 的安裝路徑(例如:C:\Program Files\GDAL)。
驗(yàn)證安裝:
- 打開(kāi)命令提示符,輸入以下命令:
ogr2ogr --version
如果顯示版本信息,說(shuō)明安裝成功。
macOS系統(tǒng)安裝GDAL
使用 Homebrew 安裝: 如果沒(méi)有安裝 Homebrew,可以先在終端執(zhí)行以下命令安裝:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安裝 GDAL:
brew install gdal
驗(yàn)證安裝: 在終端輸入:
確認(rèn)安裝成功。
Linux系統(tǒng)安裝GDAL
Debian/Ubuntu 系統(tǒng):
打開(kāi)終端,運(yùn)行以下命令:
sudo apt update sudo apt install gdal-bin
Red Hat/Fedora 系統(tǒng):
使用以下命令:
sudo dnf install gdal
驗(yàn)證安裝:
在終端輸入:
ogr2ogr --version
如果顯示版本信息,說(shuō)明安裝成功。
我這里使用的是Ubuntu系統(tǒng),按照成功會(huì)有以下提示:
在PostgreSql中創(chuàng)建表
GeoJSON 數(shù)據(jù)包含多個(gè)坐標(biāo)并且表示一個(gè)多邊形(Polygon),需要相應(yīng)地調(diào)整表設(shè)計(jì)以支持存儲(chǔ) Polygon 類型的幾何數(shù)據(jù)。
CREATE TABLE geo_data ( id SERIAL PRIMARY KEY, -- 唯一標(biāo)識(shí)符 name VARCHAR(100), -- 地物名稱 description TEXT, -- 描述(可選) type VARCHAR(50), -- GeoJSON 類型(例如 "Feature") geom GEOMETRY(Polygon, 4326), -- 空間數(shù)據(jù),使用 Polygon 類型 properties JSONB, -- 任意屬性,使用 JSONB 存儲(chǔ) created_at TIMESTAMP DEFAULT NOW(), -- 創(chuàng)建時(shí)間 updated_at TIMESTAMP DEFAULT NOW() -- 更新時(shí)間 );
字段說(shuō)明
- id: 唯一標(biāo)識(shí)符,自動(dòng)遞增。
- name: 地物名稱。
- description: 對(duì)地物的詳細(xì)描述。
- type: GeoJSON 對(duì)象的類型,通常是 “Feature”。
- geom: 存儲(chǔ) Polygon 類型的地理數(shù)據(jù),使用 PostGIS 的 GEOMETRY 類型,并指定坐標(biāo)系(這里使用 WGS 84,EPSG:4326)。
- properties: 使用 JSONB 類型存儲(chǔ)與地物相關(guān)的其他任意屬性。
- created_at: 記錄創(chuàng)建時(shí)間。
- updated_at: 記錄最后更新時(shí)間。
索引
為了提高對(duì)空間數(shù)據(jù)的查詢性能,可以創(chuàng)建空間索引:
CREATE INDEX idx_geom ON geo_data USING GIST (geom);
GeoJSON 示例
GeoJSON 數(shù)據(jù)可能類似于以下結(jié)構(gòu):
{ "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導(dǎo)入數(shù)據(jù)到表中
ogr2ogr -f "PostgreSQL" PG:"host=localhost dbname=your_db user=your_user password=your_password" your_data.geojson -nln geo_data -overwrite
- your_db:你的數(shù)據(jù)庫(kù)名。
- your_user:數(shù)據(jù)庫(kù)用戶名。
- your_password:數(shù)據(jù)庫(kù)密碼。
- your_data.geojson:你的 GeoJSON 文件名。
- geo_data:目標(biāo)表名。
導(dǎo)入完成后即可在表中查詢到
到此這篇關(guān)于使用GDAL庫(kù)的ogr2ogr將GeoJSON數(shù)據(jù)導(dǎo)入到PostgreSql中的文章就介紹到這了,更多相關(guān)GeoJSON數(shù)據(jù)導(dǎo)入到PostgreSql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle數(shù)據(jù)庫(kù)常用的99條查詢語(yǔ)句
這篇文章主要分享了oracle數(shù)據(jù)庫(kù)常用的99條查詢語(yǔ)句,學(xué)習(xí)oracle的朋友可以參考下2013-08-08oracle停止數(shù)據(jù)庫(kù)后linux完全卸載oracle的詳細(xì)步驟
本文介紹了linux完全卸載oracle的詳細(xì)步驟,卸載前需使用SQL*PLUS停止數(shù)據(jù)庫(kù)和相關(guān)服務(wù),詳細(xì)步驟看下面說(shuō)明,大家可以參考使用2014-01-01Oracle11.2 命令行手工最簡(jiǎn)創(chuàng)建數(shù)據(jù)庫(kù)的過(guò)程
Oracle 11.2命令行手工最簡(jiǎn)創(chuàng)建數(shù)據(jù)庫(kù)的過(guò)程 命令行手工最簡(jiǎn)創(chuàng)建數(shù)據(jù)庫(kù)的過(guò)程2009-09-09Oracle數(shù)據(jù)庫(kù)中ora-12899錯(cuò)誤的解決方法
大家在使用oracle數(shù)據(jù)庫(kù)時(shí),經(jīng)常會(huì)遇到各種各樣的問(wèn)題,其中ORA-12899就是前段時(shí)間我在將數(shù)據(jù)導(dǎo)入到我本地機(jī)器上的時(shí)候一直出現(xiàn)的問(wèn)題.經(jīng)過(guò)一番倒騰問(wèn)題順利解決,下面小編把實(shí)現(xiàn)思路分享到腳本之家平臺(tái)大家可以參考下2017-11-11Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)遷移完整解決步驟
我們常常需要對(duì)數(shù)據(jù)進(jìn)行遷移,遷移到更性能配置更高級(jí)的主機(jī)OS上、遷移到遠(yuǎn)程的機(jī)房、遷移到不同的平臺(tái)下,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)數(shù)據(jù)遷移的相關(guān)資料,需要的朋友可以參考下2024-02-02Oracle還原恢復(fù)啟動(dòng)時(shí)數(shù)據(jù)庫(kù)報(bào)ORA-00704、 ORA-00604,、ORA-00904的問(wèn)題解決
這篇文章主要介紹了Oracle還原恢復(fù)啟動(dòng)時(shí)數(shù)據(jù)庫(kù)報(bào)ORA-00704、 ORA-00604,、ORA-00904的問(wèn)題解決,本文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Oracle數(shù)據(jù)庫(kù)分頁(yè)的集中方法(三種方法)
在 做項(xiàng)目中用到了分頁(yè),下面說(shuō)一下oracle分頁(yè)的方法,需要的的朋友參考下吧2017-07-07