shp2pgsql 導入 Shp 到 PostGIS 空間數據庫

前言

?

shp2pgsqlPostGIS自帶的命令行工具,用于將Shapefile文件聲稱SQL腳本導入到PostGIS空間數據庫。

1. 安裝 PostGIS

通過Application Stack Builder或者下載單獨的PostGIS包進行安裝。shp2pgsql則是與PostGIS工具集成在一起,無需單獨下載。該命令行工具可以在安裝路徑下的bin目錄中找到。

也可以打開shp2pgsql圖形界面工具,也就是上一節中的PostGIS Bundle for PostgreSQL來導入Shp數據。

2. shp2pgsql 選項參數

基本語法:

shp2pgsql [OPTIONS] shapefile路徑 [schema.]table > roads.sql(輸出SQL路徑)

shp2pgsql [OPTIONS] shapefile路徑 [schema.]table

選項介紹:

選項名稱

選項描述

選項示例

-c|-a|-d|-p

互斥選項,只能選擇一個

  • -c:創建新表并從Shapefile填充它。這是默認模式
  • -a:將Shapefile中的數據追加到數據庫表中。要主義的是使用此選項加載多個文件,這些文件必須具有相同的屬性和相同的數據類型。
  • -d:在使用Shapefile中的數據創建新表之前,先刪除數據庫表。
  • -p:只生成表創建SQL代碼,不添加任何實際數據。如果需要完全分離表創建和數據加載步驟,可以使用此方法。

shp2pgsql -c -D -s 4269 -i -I shaperoads.shp myschema.roadstable > roads.sql

-D

輸出數據使用PostgreSQL“轉儲”格式。這可以與-a、-c-d組合使用。它的加載速度比默認的“插入”SQL格式快得多。將其用于非常大的數據集。

-s [<FROM_SRID>:]<SRID>

使用指定的SRID創建并填充幾何圖形表。可選地指定輸入shapefile使用給定的FROM_SRID,在這種情況下,幾何圖形將被重新投影到目標SRID

shp2pgsql -s 4326 C:countries.shp public.countriesSQL>C:countries.sql

-k

保持標識符的大小寫(列、模式和屬性)。請注意,Shapefile中的屬性都是大寫的。

-i

將所有整數強制轉換為標準的32位整數,即使DBF標頭簽名似乎保證了這一點,也不要創建64位大整數。

-I

在幾何體列上創建GiST索引。

-m

-m a_file_name指定一個文件,其中包含一組(長)列名到10個字符的DBF列名的映射。文件的內容是一行或多行兩個名稱,用空格分隔,沒有尾隨或前導空格。

例如:

COLUMNNAME DBFFIELD1

AVERYLONGCOLUMNNAME DBFFIELD2

-S

生成簡單的幾何圖形,而不是MULTIPOLYGON。只有當所有幾何體實際上都是單一的(即具有單個殼的多邊形,或具有單個頂點的多邊形)時,才能成功。

-t <dimensionality>

強制輸出幾何體具有指定的維度。使用以下字符串表示維度:2D、3DZ、3DM、4D。

如果輸入的維度比指定的少,則輸出將用零填充這些維度。如果輸入具有指定的更多尺寸,則不需要的尺寸將被刪除。

-w

輸出WKT格式,而不是WKB。請注意,由于精度損失,這可能會引入坐標漂移。

-e

不使用事務,單獨執行每條語句。當存在一些會產生錯誤的不良幾何形狀時,這允許加載大多數好數據。請注意,這不能與-D標志一起使用,因為“轉儲”格式總是使用事務。

-W

指定輸入數據的編碼(dbf文件)。使用時,dbf的所有屬性都會從指定的編碼轉換為UTF8。生成的SQL輸出將包含一個SET CLIENT_ENCODING to UTF8命令,以便后端能夠從UTF8重新轉換為數據庫內部配置使用的任何編碼。

shp2pgsql -s 4326 -I -W "UTF-8" C:countries.shp public.countriesSQL>C:countries.sql

-N <policy>

NULL幾何處理策略(insert*,skip,abort

-n

-n僅導入DBF文件。如果您的數據沒有相應的shapefile,它將自動切換到此模式并僅加載dbf。因此,只有當您有一個完整的shapefile集,并且只需要屬性數據而不需要幾何體時,才需要設置此標志。

-G

WGS84長緯度(SRID=4326)中使用地理類型而不是幾何形狀(需要經度/緯度數據)

-T <tablespace>

指定新表的表空間。除非同時使用-X參數,否則索引仍將使用默認表空間。PostgreSQL文檔對何時使用自定義表空間有很好的描述。

-X <tablespace>

為新表的索引指定表空間。這適用于主鍵索引,也適用于GIST空間索引if -I

-Z

使用此標志時,將阻止生成ANALYZE語句。如果沒有-Z標志(默認行為),將生成ANALYZE語句。

-?

顯示幫助

shp2pgsql -?

可以在命令行窗口中查看完整選項參數:![](https://i-blog.csdnimg.cn/img_convert/768b24d062237d63c0ce08b65619e46b.png)

3. shp2pgsql 使用示例

直接導入到數據庫:

shp2pgsql -s 4326 -I -W "UTF-8" C:\Users\hasee\Desktop\conutries\countries.shp public.countries | psql -U postgres -d geodata

其中postgres數據庫用戶名,geodata為數據庫名稱。

通過SQL導入數據庫:

shp2pgsql -s 4326 -I -W "UTF-8" C:\Users\hasee\Desktop\conutries\countries.shp public.countriesSQL>C:\Users\hasee\Desktop\conutries\countries.sql

數據庫示例圖片

?

?

OpenLayers示例數據下載,請回復關鍵字:ol數據

全國信息化工程師-GIS 應用水平考試資料,請回復關鍵字:GIS考試

?

?

GIS之路 已經接入了智能助手,歡迎大家前來提問。

歡迎訪問我的博客網站-長談GIShttp://shanhaitalk.com

都看到這了,不要忘記點贊、收藏 + 關注

本號不定時更新有關?GIS開發 相關內容,**歡迎關注?!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81988.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81988.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81988.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ISP算法精粹】什么是global tone mapping和local tone mapping?

1. 簡介 全局色調映射&#xff08;Global Tone Mapping&#xff09;和局部色調映射&#xff08;Local Tone Mapping&#xff09;是高動態范圍&#xff08;HDR&#xff09;圖像處理中的兩種關鍵技術&#xff0c;用于將高動態范圍圖像的亮度值映射到標準動態范圍&#xff08;LDR…

虛擬環境中VSCode運行jupyter文件

用VS Code打開jupyter文件&#xff0c;點擊右上角 Select Kernel 在正上方會出現這個選擇框&#xff0c;選擇 Python Environment 會出來所有的虛擬環境&#xff0c;選擇要用的環境行

如何計算VLLM本地部署Qwen3-4B的GPU最小配置應該是多少?多人并發訪問本地大模型的GPU配置應該怎么分配?

本文一定要閱讀我上篇文章&#xff01;&#xff01;&#xff01; 超詳細VLLM框架部署qwen3-4B加混合推理探索&#xff01;&#xff01;&#xff01;-CSDN博客 本文是基于上篇文章遺留下的問題進行說明的。 一、本文解決的問題 問題1&#xff1a;我明明只部署了qwen3-4B的模型…

antv/g6 圖譜封裝配置(二)

繼上次實現圖譜后&#xff0c;后續發現如果要繼續加入不同樣式的圖譜實現起來太過麻煩&#xff0c;因此考慮將配置項全部提取封裝到js文件中&#xff0c;圖譜組件只專注于實現各種不同的組件&#xff0c;其中主要封裝的點就是各個節點的橫坐標&#xff08;x&#xff09;,縱坐標…

從芯片互連到機器人革命:英偉達雙線出擊,NVLink開放生態+GR00T模型定義AI計算新時代

5月19日&#xff0c;在臺灣舉辦的Computex 2025上&#xff0c;英偉達推出新技術“NVLink Fusion”&#xff0c;允許非英偉達CPU和GPU&#xff0c;同英偉達產品以及高速GPU互連技術NVLink結合使用&#xff0c;加速AI芯片連接。新技術的推出旨在保持英偉達在人工智能開發和計算領…

Qt window frame + windowTitle + windowIcon屬性(3)

文章目錄 window frame屬性window frame的概念1. window frame的影響2. 圖片演示3. 代碼演示 API接口widget.cpp&#xff08;測試代碼&#xff09; windowTitle屬性API接口問題 注意點widget.cpp&#xff08;屬性用法&#xff09; windowIcon屬性API接口啥是窗口圖標玩法1. 先…

Git 分支管理:merge、rebase、cherry-pick 的用法與規范

Git 分支管理&#xff1a;merge、rebase、cherry-pick 的用法與規范 在團隊開發和個人項目中&#xff0c;合理管理 Git 分支至關重要。merge、rebase 和 cherry-pick 是最常用的三種分支操作命令。本文將介紹它們的基本用法、適用場景及最佳實踐規范&#xff0c;幫助大家更高效…

VR全景制作方法都有哪些?需要注意什么?

VR全景制作是將線下實景場景轉化為具有沉浸式體驗的全景圖像的相關技術流程。通過圖像處理和軟件拼接等手段及技術&#xff0c;可以制作出VR全景圖。后面&#xff0c;我們科普詳細的VR全景制作方法指南&#xff0c;順便介紹眾趣科技在相關領域提供的支持方案。 選定拍攝地點與準…

計算機系統結構1-3章節 期末背誦內容

Amdahl定律: 加快某部件執行速度所能獲得的系統性能加速比&#xff0c;受限于該部件的執行時間占系統中總執行時間的百分比。 加速比依賴于: 可改進比例&#xff1a;在改進前的系統中&#xff0c;可改進部分的執行時間在總的執行時間中所占的比例。 部件加速比&#xff1a;可改…

JS實現直接下載PDF文件

pdf文件通過a標簽直接下載會打開頁面&#xff0c;所以&#xff0c;請求該文件的blob文件流數據&#xff0c;再通過window.URL.createObjectURL轉成鏈接&#xff0c;就可以直接下載了。 只需要替換url和文件名稱就行&#xff0c;文件名的后綴記得要寫上pdf&#xff0c;不然會變成…

深度解析Pytest中Fixture機制與實戰案例

一、為什么我們需要Fixture&#xff1f; 在某次金融系統重構項目中&#xff0c;我們的測試團隊曾遇到這樣的困境&#xff1a;隨著測試用例增長到500&#xff0c;使用unittest框架編寫的測試代碼出現了嚴重的維護問題——setup方法臃腫不堪&#xff0c;測試數據混亂&#xff0c…

文檔結構化專家:數字化轉型的核心力量

文檔結構化專家:定義、職責與行業應用的全方位解析 一、文檔結構化的定義與核心價值 文檔結構化是將非結構化或半結構化文檔(如文本、圖像、表格)轉換為計算機可處理的規范化數據形式的過程。其核心在于通過語義解析、信息單元劃分和標準化格式(如XML/JSON),實現信息的…

Linux系統管理與編程16番外篇:PXE自動化安裝部署OpenEuler24.03LTS

蘭生幽谷&#xff0c;不為莫服而不芳&#xff1b; 君子行義&#xff0c;不為莫知而止休。 Preboot Execution Environment 本機服務器操作系統&#xff1a;CentOS7.9.2207 目標服務器安裝系統&#xff1a;openEuler-24.03-LTS-SP1-everything-x86_64-dvd.iso 虛擬機&#xff1…

Enhanced RTMP H.265(HEVC)技術規格解析:流媒體協議的新突破

Enhanced RTMP H.265&#xff08;HEVC&#xff09;技術規格解析&#xff1a;流媒體協議的新突破 “每一幀畫面都是時間的映射&#xff0c;壓縮之后的靈魂&#xff0c;依然能栩栩如生。” 隨著流媒體技術的快速發展&#xff0c;視頻編碼標準不斷推陳出新。H.264/AVC雖然已經成為…

Visual Studio Code 改成中文模式(漢化)

1、打開工具軟件&#xff08;雙擊打開&#xff09; 2、軟件左邊圖標點開 3、在搜索框&#xff0c;搜索 chinese 出現的第一個 就是簡體中文 4、點擊第一個簡體中文&#xff0c;右邊會出來基本信息 點擊 install 就可以安裝了&#xff08;記得聯網&#xff09;。 5、安裝完右…

Linux--初識文件系統fd

01. C/系統調用文件操作 C/系統調用文件操作 02. 文件系統(ext2)結構 Linux ext2文件系統&#xff0c;上圖為磁盤文件系統圖&#xff08;內核內存映像肯定有所不同&#xff09;&#xff0c;磁盤是典型的塊設備&#xff0c;硬盤分區被劃分為一個個的block。一個塊的大小(有1MB,…

算法中的數學:歐拉函數

1.相關定義 互質&#xff1a;a與b的最大公約數為1 歐拉函數&#xff1a;在1~n中&#xff0c;與n互質的數的個數就是歐拉函數的值 eg&#xff1a; n1時&#xff0c;歐拉函數的值為1&#xff0c;因為1和1是互質的 n2是&#xff0c;值為2&#xff0c;因為1和2都是互質的 積性函數&…

BaseDao指南

1. BaseDao類 import java.sql.*;/*** 通用的工具類 ,負責連接數據&#xff0c; 執行增刪改查的通用方法*/ public class BaseDao {private Connection connection;private PreparedStatement pstm;private ResultSet rs;/*** 建立數據庫連接** return*/public Boolean getCon…

SpringBoot JAR 啟動原理

文章目錄 版本概述JAR 包結構MANIFEST.MF 描述文件JarLauncherArchive 接口launch 方法Handlers.register() 方法getClassPathUrls 方法createClassLoader 方法 時序圖參考 版本 Java 17SpringBoot 3.2.4 概述 JAR 啟動原理可以簡單理解為“java -jar的啟動原理” SpringBo…

YOLO11解決方案之速度估算探索

概述 Ultralytics提供了一系列的解決方案&#xff0c;利用YOLO11解決現實世界的問題&#xff0c;包括物體計數、模糊處理、熱力圖、安防系統、速度估計、物體追蹤等多個方面的應用。 YOLO速度估算結合物體檢測和跟蹤技術&#xff0c;使用YOLO11 模型檢測每幀中的物體&#xf…