最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Postgresql導(dǎo)入幾何數(shù)據(jù)(shp,geojson)的幾種方式

 更新時間:2026年02月08日 08:34:50   作者:智商偏低  
本文主要介紹了Postgresql導(dǎo)入幾何數(shù)據(jù)(shp,geojson)的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、PostGIS 方式導(dǎo)入空間數(shù)據(jù)

導(dǎo)入前需完成PostgreSQL + 對應(yīng)版本 PostGIS的安裝,所有導(dǎo)入方式的核心前提為:目標(biāo)數(shù)據(jù)庫必須啟用 PostGIS 擴(kuò)展,否則空間數(shù)據(jù)無法導(dǎo)入 / 識別。

1.1 PostGIS 客戶端直接導(dǎo)入

通過 PostGIS 專用客戶端軟件可視化操作,步驟簡單直觀,適合基礎(chǔ)導(dǎo)入場景。

操作步驟

創(chuàng)建數(shù)據(jù)庫:在 PostGIS 中執(zhí)行 SQL 語句創(chuàng)建目標(biāo)數(shù)據(jù)庫(示例庫名),語句如下:

Create database ChinaMapFDD;

啟用 PostGIS 擴(kuò)展:必做步驟,未啟用則無法導(dǎo)入數(shù)據(jù),執(zhí)行語句:

Create extension postgis;

建立客戶端與數(shù)據(jù)庫連接:在 PostGIS 客戶端配置連接信息(數(shù)據(jù)庫地址、端口、賬號、密碼、已創(chuàng)建的數(shù)據(jù)庫名),測試連接成功后完成綁定。

導(dǎo)入 SHP 文件:在客戶端導(dǎo)入模塊選擇待導(dǎo)入的 SHP 文件,關(guān)鍵注意:SHP 文件及所在目錄避免包含中文,防止路徑識別錯誤。

驗(yàn)證導(dǎo)入結(jié)果:在 PostgreSQL 數(shù)據(jù)庫中查看對應(yīng)數(shù)據(jù)表,確認(rèn)數(shù)據(jù)導(dǎo)入成功。

可視化校驗(yàn):通過 ArcMap、QGIS 等 GIS 軟件連接數(shù)據(jù)庫,加載數(shù)據(jù)查看導(dǎo)入效果。

關(guān)鍵注意

當(dāng)前使用的ArcMap 10.2.2無法打開PostgreSQL 12.9數(shù)據(jù)庫,原因?yàn)榘姹静患嫒?,ArcMap SDE 模塊對 PostgreSQL 版本有嚴(yán)格匹配要求。

1.2 osm2pgsql 方式導(dǎo)入

基于 SQL 語句操作,適配 OpenStreetMap(OSM)數(shù)據(jù)及通用空間數(shù)據(jù)導(dǎo)入,需依賴 PostGIS 擴(kuò)展的空間函數(shù)支持。

前提條件

目標(biāo)數(shù)據(jù)庫已安裝并啟用 PostGIS 擴(kuò)展,PostGIS 官方文檔參考:http://www.postgis.net/docs/ST_AsText.html

操作步驟

創(chuàng)建 GIS 專用數(shù)據(jù)庫:

create database gisdb;

啟用 PostGIS 擴(kuò)展,保證空間函數(shù)可正常執(zhí)行:

create extension postgis;

驗(yàn)證擴(kuò)展添加成功:查詢 PostGIS 完整版本信息,確認(rèn)擴(kuò)展啟用正常:

select postgis_full_version();

執(zhí)行導(dǎo)入:通過 osm2pgsql 命令行工具,指定數(shù)據(jù)庫連接信息和待導(dǎo)入文件路徑,執(zhí)行導(dǎo)入命令(命令可根據(jù)文件類型 / 工具版本調(diào)整)。

結(jié)果驗(yàn)證:在數(shù)據(jù)庫中查詢數(shù)據(jù)表,或通過 GIS 軟件可視化校驗(yàn)數(shù)據(jù)完整性。

1.3 ArcMap SDE 方式導(dǎo)入

通過 ArcMap 的 SDE(空間數(shù)據(jù)庫引擎)模塊實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入,核心要求為 ArcMap 與 PostgreSQL 版本嚴(yán)格匹配。

操作步驟

版本兼容性校驗(yàn):安裝 ArcMap 后,在軟件安裝目錄的數(shù)據(jù)支持模塊中,查看 SDE 所支持的 PostgreSQL 版本,確認(rèn)本地數(shù)據(jù)庫版本在支持范圍內(nèi)。

配置 SDE 與數(shù)據(jù)庫連接:在 ArcMap 中通過 SDE 模塊填寫數(shù)據(jù)庫連接信息,完成綁定。

導(dǎo)入數(shù)據(jù):在 ArcMap 中選擇待導(dǎo)入空間數(shù)據(jù),通過 SDE 導(dǎo)入功能寫入 PostgreSQL 數(shù)據(jù)庫。

結(jié)果驗(yàn)證:在數(shù)據(jù)庫中查看數(shù)據(jù)表,或在 ArcMap 中直接加載數(shù)據(jù)校驗(yàn)完整性。

二、GeoServer 發(fā)布空間數(shù)據(jù)三種方案

方案 A:導(dǎo)入 PostgreSQL (PostGIS) 后發(fā)布(推薦)

該方案為大數(shù)據(jù)量空間數(shù)據(jù)的最優(yōu)解,PostGIS 的 GIST 空間索引能大幅提升 GeoServer 的查詢與渲染速度,解決數(shù)據(jù)過濾卡頓問題。

第一步:準(zhǔn)備環(huán)境

  1. 完成 PostgreSQL 安裝,并為目標(biāo)數(shù)據(jù)庫安裝 PostGIS 擴(kuò)展;
  2. 執(zhí)行 SQL 語句啟用空間功能,確保數(shù)據(jù)庫支持空間數(shù)據(jù)處理:
    CREATE EXTENSION postgis;
    

第二步:將 GeoJSON 導(dǎo)入 PostGIS 數(shù)據(jù)庫

以下三種方法任選,按操作難度從易到難排序:

方法 1:QGIS 導(dǎo)入(圖形化界面,最簡單)

  1. 打開 QGIS,將 GeoJSON 文件直接拖入軟件加載;
  2. 點(diǎn)擊菜單欄【數(shù)據(jù)庫】→【數(shù)據(jù)庫管理器】;
  3. 配置并連接本地 PostGIS 數(shù)據(jù)庫,點(diǎn)擊【導(dǎo)入圖層】,選擇已加載的 GeoJSON 圖層完成導(dǎo)入。

方法 2:ogr2ogr 命令行導(dǎo)入(專業(yè)級,支持自動化)

該工具為 GDAL 內(nèi)置工具,一行命令即可完成導(dǎo)入,適合批量 / 自動化操作(需提前配置 GDAL 環(huán)境變量):

# 基礎(chǔ)命令模板,需替換<>內(nèi)的自定義信息
ogr2ogr -f "PostgreSQL" PG:"host=<數(shù)據(jù)庫地址> port=<端口> dbname=<數(shù)據(jù)庫名> user=<賬號> password=<密碼>" <GeoJSON文件本地路徑>

方法 3:DBeaver 導(dǎo)入(通用數(shù)據(jù)庫工具)

  1. 打開 DBeaver,連接目標(biāo) PostGIS 數(shù)據(jù)庫;
  2. 右鍵左側(cè)【表】列表→【導(dǎo)入數(shù)據(jù)】;
  3. 選擇數(shù)據(jù)源為 GeoJSON 文件,按向?qū)瓿蓪?dǎo)入。

第三步:在 GeoServer 中發(fā)布 PostGIS 數(shù)據(jù)

  1. 登錄 GeoServer 管理后臺(默認(rèn)地址:http://localhost:8080/geoserver);
  2. 創(chuàng)建工作區(qū):點(diǎn)擊左側(cè)【工作區(qū)】→【添加新工作區(qū)】,填寫工作區(qū)名稱和命名空間 URI,保存;
  3. 創(chuàng)建數(shù)據(jù)存儲:點(diǎn)擊左側(cè)【數(shù)據(jù)存儲】→【添加新數(shù)據(jù)存儲】,選擇數(shù)據(jù)源為PostGIS,填寫數(shù)據(jù)庫連接信息(地址、端口、庫名、賬號、密碼),保存;
  4. 發(fā)布圖層:數(shù)據(jù)存儲創(chuàng)建成功后,GeoServer 會自動識別數(shù)據(jù)庫中的空間表,點(diǎn)擊目標(biāo)表后的【發(fā)布】按鈕;
  5. 配置圖層范圍:在圖層發(fā)布頁面,依次點(diǎn)擊【從數(shù)據(jù)中計算】和【計算本地邊界】,自動生成圖層的空間邊界,保存配置。

方案 B:GeoServer 直接發(fā)布 GeoJSON 文件

該方案無需配置數(shù)據(jù)庫,操作簡單,適合小體量 GeoJSON 數(shù)據(jù)(10MB 以下) 的快速發(fā)布。

第一步:安裝 GeoJSON 插件(按需操作)

GeoServer 部分低版本無默認(rèn) GeoJSON 支持,需手動安裝插件,高版本一般自帶該功能:

  1. 前往 GeoServer 官方下載頁,找到與本地版本完全一致的安裝包;
  2. 在【Extensions】欄目下下載 GeoJSON 擴(kuò)展包(命名格式:geoserver-xx-geojson-plugin.zip);
  3. 解壓擴(kuò)展包,將所有.jar 文件復(fù)制到 GeoServer 安裝目錄的webapps/geoserver/WEB-INF/lib文件夾中;
  4. 重啟 GeoServer 服務(wù),完成插件加載。

第二步:直接發(fā)布 GeoJSON 步驟

  1. 登錄 GeoServer 管理后臺,創(chuàng)建工作區(qū)(首次發(fā)布需操作);
  2. 創(chuàng)建數(shù)據(jù)存儲:點(diǎn)擊【數(shù)據(jù)存儲】→【添加新數(shù)據(jù)存儲】,選擇數(shù)據(jù)源為GeoJSON(插件安裝成功后顯示);若需批量發(fā)布,可選擇【Directory of spatial files】并指向 GeoJSON 文件所在文件夾;
  3. 配置文件路徑:選擇服務(wù)器磁盤上的 GeoJSON 文件(建議文件無中文 / 空格),保存配置;
  4. 發(fā)布圖層:數(shù)據(jù)存儲保存后,點(diǎn)擊目標(biāo)圖層后的【發(fā)布】按鈕,完成基礎(chǔ)發(fā)布。

方案 C:發(fā)布 WMS 及圖層樣式控制

GeoServer 發(fā)布的圖層可通過 WMS(Web 地圖服務(wù))對外提供地圖服務(wù),默認(rèn)樣式為基礎(chǔ)灰色(點(diǎn) / 線),需通過 SLD 文件自定義樣式,實(shí)現(xiàn)可視化效果優(yōu)化。

第一步:發(fā)布 WMS 服務(wù)

圖層通過方案 A / 方案 B 發(fā)布后,GeoServer 會自動生成 WMS 服務(wù),可通過左側(cè)【圖層預(yù)覽】找到目標(biāo)圖層,選擇 WMS 相關(guān)預(yù)覽格式(如 OpenLayers),即可查看 WMS 服務(wù)效果,預(yù)覽地址即為 WMS 服務(wù)地址。

第二步:通過 SLD 配置圖層樣式

SLD(Styled Layer Descriptor)是 GeoServer 的樣式描述文件,通過 XML 代碼定義圖層的顏色、線寬、標(biāo)記、縮放級別適配等樣式規(guī)則。

  1. 創(chuàng)建自定義樣式:點(diǎn)擊左側(cè)【Styles】→【添加新樣式】,填寫樣式名稱,在編輯區(qū)編寫 SLD XML 代碼(新手可使用 QGIS/GeoCat Bridge 等工具導(dǎo)出現(xiàn)成 SLD 文件,直接復(fù)制粘貼);
  2. 樣式與圖層關(guān)聯(lián):返回目標(biāo)圖層的配置頁面,點(diǎn)擊【Publishing(發(fā)布)】選項卡,在【默認(rèn)樣式】下拉框中選擇剛創(chuàng)建的自定義樣式,保存配置;
  3. 生效驗(yàn)證:在【圖層預(yù)覽】中重新加載圖層,查看自定義樣式是否生效。

三、發(fā)布方案對比與最終建議

3.1 核心方案對比表

特性GeoJSON 文件直接發(fā)布(方案 B)PostgreSQL/PostGIS 方案(方案 A)
適配數(shù)據(jù)量適合 10MB 以下小體量數(shù)據(jù)適合 GB 級別大數(shù)據(jù)量(無上限)
訪問性能每次渲染需重新解析文件,速度較慢、易卡頓極快,依托 PostGIS 空間索引,瞬間過濾要素
維護(hù)難度簡單,直接修改本地 GeoJSON 文件即可需基礎(chǔ)數(shù)據(jù)庫維護(hù),數(shù)據(jù)存儲更安全、可追溯
功能支持僅支持基礎(chǔ)地圖展示支持空間 SQL 統(tǒng)計、動態(tài)查詢、數(shù)據(jù)聯(lián)動等高級功能

3.2 最終建議

結(jié)合數(shù)據(jù)量巨大、存在過濾卡頓的核心問題,強(qiáng)烈推薦使用方案 A(PostGIS+GeoServer):PostGIS 的 R-Tree 空間索引能精準(zhǔn)、快速過濾出視野內(nèi)的空間要素,配合 GeoServer 的 WMS 服務(wù)返回渲染后的圖片,可讓前端 OpenLayers 等地圖框架在處理百萬級甚至千萬級空間數(shù)據(jù)時,保持流暢的交互體驗(yàn);同時 PostGIS 支持空間 SQL 查詢,可實(shí)現(xiàn)數(shù)據(jù)的高級分析與動態(tài)篩選,擴(kuò)展性遠(yuǎn)優(yōu)于直接發(fā)布 GeoJSON 文件。

到此這篇關(guān)于Postgresql導(dǎo)入幾何數(shù)據(jù)(shp,geojson)的幾種方式的文章就介紹到這了,更多相關(guān)Postgresql導(dǎo)入幾何數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostgreSQL死鎖排查與解決指南

    PostgreSQL死鎖排查與解決指南

    數(shù)據(jù)庫死鎖是后端開發(fā)者和DBA經(jīng)常遇到的棘手問題,本文將手把手教你如何排查和解決PostgreSQL中的死鎖問題,需要的朋友可以參考下
    2025-11-11
  • 最新評論

    衡阳市| 丽水市| 巴林左旗| 大兴区| 乌恰县| 永春县| 石棉县| 西乡县| 江城| 永德县| 盐津县| 离岛区| 瑞金市| 明溪县| 固安县| 股票| 湟中县| 福贡县| 内江市| 驻马店市| 海阳市| 泰安市| 辛集市| 金川县| 龙口市| 区。| 阳西县| 蛟河市| 祁连县| 乾安县| 清水县| 衡东县| 镇康县| 香港| 中西区| 阿鲁科尔沁旗| 甘洛县| 东辽县| 厦门市| 兴仁县| 阿克|