跳至內容
QGIS
指南

什麼是 CRS?坐標參考系統、EPSG 與 QGIS 圖層錯位修正

發布於

坐標參考系統(CRS)是把一組坐標對應到地球上真實位置的規則。它告訴軟體這些數字採用哪一種地球模型、單位是度還是公尺,以及圓形的地球是如何被攤平成地圖的。每個 GIS 圖層都有 CRS,通常以簡短的代碼表示,例如 EPSG:4326。

少了 CRS,651000, 6862000 只是兩個數字。搭配 EPSG:2154,它是巴黎的一個點。如果誤配成 EPSG:4326,同樣的數字哪裡也指不到,QGIS 就會把圖層畫在錯誤的位置。大多數「我的圖層跑到海上了」的問題都出在這種不一致。下文會一步一步說明修正方式,並測試我們開發的 QGIS 外掛 AI Agent:它只靠一則訊息,就在 52 秒內找出正確的 CRS。

CRS 組成示意圖。三張卡片以加號相連:1,哪一個地球,也就是大地基準與橢球體,例如 WGS 84、ETRS89、NAD83 或 SIRGAS 2000;2,角度還是公尺,也就是坐標系統;3,如何攤平,也就是投影,只有平面格網才需要。等號之後是一張綠色卡片,標示:EPSG 代碼,其中 EPSG:4326 是以度為單位的 WGS 84,EPSG:3857 是以公尺為單位的 Web Mercator,EPSG:2154 是法國的 Lambert-93。下方說明,地理坐標系統只用到第 1 與第 2 部分,坐標如 48.85, 2.35;投影坐標系統三個部分都用到,坐標如 652 000, 6 862 000。
大地基準、坐標系統,以及平面地圖才需要的投影。EPSG 代碼是這個組合的名稱。

CRS 的三個組成部分

每個 CRS 都要回答三個問題。任何一個答錯,您的資料就會移位。

  1. 大地基準(datum):哪一個地球? 地球略為扁平,並不是正圓球。大地基準是這個形狀的數學模型,並固定在地球上。GPS 使用的 WGS 84 就是其中之一,歐洲的 ETRS89 與北美的 NAD83 則是另外兩個。
  2. 坐標系統:度還是公尺? 地理坐標系統以度表示緯度與經度。投影坐標系統則以公尺表示平面地圖上的 x 與 y。
  3. 投影:如何攤平? 投影是把圓形地球轉成平面地圖的方法。攤平必然會拉伸某些東西,所以每種投影都會選擇要保持哪一項正確:面積、角度或距離。

地理坐標系統與投影坐標系統

兩種都是正確的 CRS。差別在於,量測出來的數字有沒有意義。

地理坐標系統投影坐標系統
單位緯度與經度的度公尺或英尺
範例EPSG:4326(WGS 84)EPSG:32643(WGS 84 / UTM zone 43N,印度西部)
適合儲存與交換全球資料、GPS 定位量測面積與距離、工程、國家級製圖
不適合面積與長度:經度 1 度在赤道約 111 km,到極點是 0 km遠離投影設計區域的地方,面積會失真

我的原則是:資料維持原本的 CRS,但量測時改用適合所在區域的投影坐標系統。在 EPSG:4326 中算出的面積,單位是平方度。它看起來仍然像一個正常的數字,所以才會有人把它交出去。

EPSG 代碼是什麼

EPSG 代碼是一個簡短的數字,用來精確指定一個 CRS。這份清單最初由歐洲石油調查組織(European Petroleum Survey Group)建立,因此叫 EPSG,現在由國際油氣生產者協會維護,收錄了 7,000 多個 CRS。

以下是我最常遇到的代碼:

代碼名稱使用地區與原因
EPSG:4326WGS 84GPS 坐標、GeoJSON、大多數全球資料集
EPSG:3857WGS 84 / Pseudo-Mercator網路地圖圖磚:OpenStreetMap、Google、Bing、Esri 底圖
EPSG:2154RGF93 / Lambert-93法國本土的法定 CRS
EPSG:25832ETRS89 / UTM zone 32N德國、丹麥、挪威與中歐大部分地區
EPSG:32643WGS 84 / UTM zone 43N印度西部,包含孟買與浦那
EPSG:31983SIRGAS 2000 / UTM zone 23S巴西東南部,包含聖保羅州
EPSG:26918NAD83 / UTM zone 18N美國東岸,包含紐約

第一列藏著一個陷阱。正式的 EPSG:4326 把緯度放在前面,但大多數軟體(包含 QGIS)與 GeoJSON 都是先讀經度(GeoTools 解釋了原因)。如果您的 CSV 點位跑到南極洲,或落在索馬利亞外海,請先檢查欄位是不是對調了。

EPSG:4326 與 EPSG:3857 的差別

EPSG:4326 以度儲存位置。EPSG:3857 稱為 Web Mercator,會把位置轉成以公尺為單位的正方形格網,讓地圖可以切成圖磚。Google Maps 在 2005 年採用它,後來幾乎所有線上底圖都跟進。它很適合顯示,卻不適合量測,因為離赤道越遠,面積被放大得越多。

Web Mercator 世界地圖上有六個橘色正方形,每個在地面上都是 500 乘 500 公里。赤道上基多的正方形最小,標示 ×1.01。孟買是 ×1.13,馬德里 ×1.73,柏林 ×2.70,奧斯陸 ×3.97,北極圈以北的特羅姆瑟正方形約大了八倍,標示 ×8.23。
六個地面面積相同的正方形,在 QGIS 中以 EPSG:3857 繪製。標籤是實測的面積放大倍率。

我在 QGIS 中,用六座城市各一個真實的 1 km² 正方形,量測放大了多少:

城市緯度1 km² 在 Web Mercator 地圖上的面積
基多南緯 0.2°1.007 km²
孟買北緯 19.1°1.126 km²
馬德里北緯 40.4°1.727 km²
柏林北緯 52.5°2.696 km²
奧斯陸北緯 59.9°3.966 km²
特羅姆瑟北緯 69.7°8.226 km²

經驗法則 1 / cos²(緯度) 與每一筆實測值的誤差都在 0.6% 以內。就算在赤道上,Web Mercator 也多出 0.67%,因為它用的是球體公式,而地球並不是球體。

我們如何量測。 2026 年 9 月 26 日,我在 QGIS 3.44 中,把每個正方形畫成真實大小(在 WGS 84 橢球體上為 1.000000 km²,以 $area 驗證)。接著把它重新投影到 EPSG:3857,再用 area($geometry) 讀出平面面積。

所以,在奧斯陸用 Web Mercator 圖層量出的一塊農地,面積會大約多出四倍。請改用正確的 CRS 量測:您所在國家的官方 CRS 或所屬的 UTM 帶,量出的面積誤差都在百分之一以下。

大地基準:同樣的坐標,卻差了好幾公尺

兩個 CRS 都寫「緯度 40.7、經度 -74.0」,指到的點卻可能相差數公尺,因為它們使用不同的大地基準。差多少,取決於是哪一組:

從到一般位移來源
NAD27NAD83美國本土 48 州為 10 至 100 m,夏威夷超過 400 mUSGS
NAD83WGS 84美國大部分地區約 1 至 2 mNorth American Datum
ETRS89WGS 84目前約 90 cm,每年增加 2.5 cmEuroGeographics / EUREF,2025

歐洲是最出人意料的例子。ETRS89 會跟著歐亞板塊的歐洲部分移動,板塊每年漂移約 2.5 cm,WGS 84 卻不會。所以一個 1989 年在 ETRS89 中固定的點,現在與它的 WGS 84 位置相差約 90 cm,而地面上的實物其實沒有動。在底圖上沒有人看得出來,但對土地測量來說就很重要。

當 QGIS 知道兩個大地基準之間有好幾種轉換方式時,會請您選一種。請依您的區域選擇精度最高的那一種,不要直接關掉對話框。

為什麼 QGIS 中的圖層對不齊

QGIS 會即時重新投影:每個圖層保留各自的 CRS,QGIS 再把它們全部轉成專案 CRS 來顯示。只要每個圖層的 CRS 宣告正確,這就能順利運作。如果標籤是錯的,QGIS 就是從錯誤的起點開始轉換。

為了示範,我把德國班貝格老城區 1,015 棟 OpenStreetMap 建物存成以公尺為單位的資料(EPSG:25832),並搭配一個錯誤宣告為 WGS 84(單位是度)的 .prj 檔案。QGIS 相信了這個檔案。在 Web Mercator 專案中,這個圖層雖然已勾選,卻哪裡也畫不出來,因為經度 635,460 度根本不在地球上。在 WGS 84 專案中使用「縮放至圖層」,只會看到建物孤零零地出現在空白的畫布上。

兩個並排的 QGIS 檢視。左側:Web Mercator 專案,航照影像上是班貝格的黃色建物輪廓;圖層面板列出一個宣告為 WGS 84 的紅色副本,已勾選卻沒有畫在任何地方。右側:在 WGS 84 專案中使用「縮放至圖層」後,同樣的紅色建物單獨出現在白色畫布上,x 為 635,460、y 為 5,528,260,被當成度來讀取,沒有底圖。
同樣的建物,正確與錯誤的樣子。把公尺標成度,圖層就完全掉出地圖之外。

這是常見的問題,不只新手會遇到。在 YouTube 上的 1,692 支 QGIS 教學影片中,有 155 支(9.2%)的留言在問 CRS 或圖層對不齊。在 GIS Stack Exchange 上,coordinate-system 標籤下有 8,402 個問題。

那裡被重複最多次的回答,來自一位經驗豐富的使用者:「大約 99% 的情況下,人們只是用『設定 CRS』而不是重新投影,因為他們不知道兩者的差別。」這兩個工具的作用恰好相反:

  • 「設定圖層的 CRS」 只改標籤,數字不變。只有在標籤本來就是錯的時候才用,例如 Shapefile 遺失了 .prj 檔案。
  • 「重新投影圖層」 位置不變,數字改變。標籤正確,但您需要把資料轉成另一個 CRS 時才用。

對一個本來就正確的圖層使用「設定圖層的 CRS」,會把它移到錯誤的位置。這就是典型的「我重新投影之後反而更糟」。

如何在 QGIS 中修正 CRS 問題

讀取圖層宣告的 CRS

在圖層上按右鍵,選擇**「屬性」→「資訊」**。其中的 CRS 一行會顯示 QGIS 認為這些坐標屬於哪個 CRS。右下角的狀態列則會顯示專案 CRS。

查看原始數字

用「識別圖徵」工具點選一個圖徵,或開啟點位 CSV 的屬性表格。介於 -180 與 180 之間的值是度;數十萬或數百萬的值,則是投影坐標系統中的公尺。如果數字與宣告的 CRS 不符,就代表標籤是錯的。

修正標籤,或轉換資料

標籤錯誤時:「圖層」→「設定圖層的 CRS」,然後選擇資料實際製作時使用的 CRS。資料供應者的說明,或該國的標準 CRS,通常能告訴您答案。標籤正確,但您需要另一個 CRS 時:「空間運算工具箱」→「重新投影圖層」。

依您的區域設定專案 CRS

量測任何東西之前,請先按下狀態列中的 CRS 按鈕,選擇適合您所在區域的投影坐標系統。

在班貝格這個圖層中,問題出在標籤,所以修正方式是**「設定圖層的 CRS」**:在篩選欄輸入 25832,然後選擇 ETRS89 / UTM zone 32N。

QGIS 的「設定 CRS」對話框,篩選欄輸入了 25832。投影坐標系統下的 Universal Transverse Mercator 中,ETRS89 / UTM zone 32N(EPSG:25832)已被選取。詳細資訊窗格列出單位為公尺與 ETRS89 大地基準,一張小型世界地圖標出中歐上方的 UTM zone 32N 帶狀範圍。
用 EPSG 代碼篩選的「設定圖層的 CRS」。它只改標籤,每個坐標都維持原樣。

沒有任何一個坐標被改動。標籤與數字相符之後,1,015 個輪廓全都落在各自的屋頂上。

班貝格老城區的 QGIS 地圖,圖層的 CRS 設為 EPSG:25832 之後,紅色建物輪廓正好落在航照影像的屋頂上。
設定 CRS 之後:輪廓與航照影像對齊了。

讓 AI Agent 幫您診斷

我們開發 QGIS 外掛 AI Agent,所以這一節談的是我們自己的工具。上面的手動做法是免費的,熟悉之後只要幾分鐘。難的地方是要知道資料實際是用哪個 CRS 製作的,所以我測試了 AI Agent 能不能自己判斷出來。

我重新載入壞掉的圖層,只送出一則訊息:「我的建物圖層跟底圖對不齊。找出原因並修正。」AI Agent 在 52 秒內讀取了 .prj,發現坐標是公尺,並比對市政廳落在航照影像上的位置,選定 EPSG:25832。它排除了同一區域較舊的歐洲 CRS,因為那個 CRS 會讓建物偏離約 225 m。它另存了一份修正後的副本,原始檔案則完全沒動。

右側停靠著 AI Agent 面板的 QGIS。地圖顯示班貝格的建物與航照影像對齊。AI Agent 的回覆指出,Buildings Shapefile 宣告為 EPSG:4326,但其坐標其實是 EPSG:25832,它已把正確的 CRS 指定給一份副本,沒有移動任何幾何,1,015 個輪廓現在都與正射影像對齊,原始檔案未更動且已隱藏。下方顯示:儲存的 GeoPackage、它加入或隱藏的圖層、1 個來源、11 個動作,以及一個復原按鈕。
一則訊息、52 秒:AI Agent 指出正確的 CRS,並修正一份副本。

它在專案中留下一個隱藏的暫存圖層,需要手動刪除。和您一樣,它需要一張底圖或參考圖層才能比對。

在 QGIS 中免費試用 AI Agent,無需信用卡

該選哪一個 CRS?

您想要使用原因
在網路底圖上顯示資料EPSG:3857圖磚本來就是這個 CRS
儲存或交換全球資料EPSG:4326通用,也是 GeoJSON 預期的格式
量測一個國家內的面積與長度該國的國家 CRS,或當地的 UTM 帶專為該區域設計,單位是公尺
跨大陸量測等面積 CRS,例如歐洲用 EPSG:3035在大範圍內保持面積正確
交付給政府客戶對方的法定 CRS,例如法國的 EPSG:2154通常會寫在合約裡

要更改專案 CRS,請按下 QGIS 視窗右下角的 EPSG 按鈕。它會開啟**「專案屬性」→「CRS」**,您可以在那裡用代碼或名稱搜尋。

QGIS 狀態列,其中的 EPSG:3857 按鈕被標示出來,上方是停在 CRS 分頁的「專案屬性」視窗。最近使用的系統列出 EPSG:25832、4326、3857 與 2056;已選取 WGS 84 / Pseudo-Mercator,單位為公尺,並附有其涵蓋範圍的世界地圖。
狀態列中的專案 CRS 按鈕會開啟「專案屬性」→「CRS」。

重點整理

CRS 透過大地基準、坐標系統,以及平面地圖才需要的投影,把坐標對應到地球上的位置。

EPSG 代碼精確指定一個 CRS:EPSG:4326 是 GPS 的緯度與經度,EPSG:3857 是線上底圖使用的 Web Mercator 格網。

Web Mercator 會把面積放大約 1 / cos²(緯度) 倍。在 QGIS 中實測,1 km² 的正方形在馬德里涵蓋 1.73 km²,在奧斯陸涵蓋 3.97 km²,在特羅姆瑟涵蓋 8.23 km²。請改用國家 CRS 或 UTM 的 CRS 量測。

圖層對不齊時,先檢查原始數字,再動手修改。「設定圖層的 CRS」用來修正錯誤的標籤,「重新投影圖層」用來轉換正確的資料,兩者弄混就會把圖層移走。

QGIS 內的 AI Agent 可以幫您診斷:在我們的測試中,AI Agent 只靠一則訊息就指出正確的 CRS,並修正了圖層的副本。

常見問題

GIS 中的 CRS 是什麼?

坐標參考系統告訴 GIS 軟體,圖層的坐標位於地球上的哪裡。它結合了大地基準(地球形狀的模型)、坐標系統(度或公尺),以及平面地圖才需要的投影。每個圖層都有一個 CRS,通常以 EPSG 代碼命名。

EPSG:4326 與 EPSG:3857 有什麼差別?

EPSG:4326 以度在 WGS 84 橢球體上儲存緯度與經度。EPSG:3857 則把同樣的位置投影成以公尺為單位的正方形格網,供網路地圖圖磚使用。3857 用來顯示底圖,絕對不要用來量測:它在緯度 40° 把面積放大 1.7 倍,在緯度 60° 則放大 4 倍。

WGS 84 就是 EPSG:4326 嗎?

日常使用上是的。嚴格來說,WGS 84 是大地基準,EPSG:4326 則是建立在它之上的緯度與經度 CRS。其他 CRS 也會使用 WGS 84,例如 EPSG:3857。

為什麼我的圖層在 QGIS 中位置不對?

圖層宣告的 CRS 與檔案中的坐標不相符。常見原因有:缺少 .prj 檔案、CSV 的緯度與經度對調,或該用「重新投影圖層」時卻用了「設定圖層的 CRS」。請先用「識別圖徵」工具檢查原始坐標,只有在標籤確實有誤時,才用「設定圖層的 CRS」更正。

QGIS 的「設定 CRS」與「重新投影」有什麼差別?

「設定圖層的 CRS」只改 CRS 標籤,坐標數字不變,所以除非原本的標籤是錯的,否則會把圖層移位。「重新投影圖層」讓圖層留在原處,並把數字重新計算成新的 CRS。前者用來修復中繼資料,後者用來轉換資料。

QGIS 能自動找出正確的 CRS 嗎?

它自己做不到。QGIS 會從檔案讀取 CRS,例如 Shapefile 旁邊的 .prj,沒有時就詢問您。它不會檢查坐標是否吻合。AI 代理外掛可以。我們的 AI Agent 會把坐標與底圖比對、找出 CRS,並修正圖層的副本,只需要在 QGIS 中輸入一則訊息。

量測面積該用哪一個 CRS?

為您所在區域設計的投影坐標系統:您所在國家的官方 CRS,或您所處的 UTM 帶。跨大陸的面積則使用等面積 CRS,例如歐洲的 EPSG:3035。絕對不要在 EPSG:4326(平方度)或 EPSG:3857(離赤道越遠越被放大)中量測面積。

CRS 也是掃描地圖的空間對位的起點,因為您放上去的點,只有在已知的坐標系統中才有意義。什麼是 QGIS 介紹了這套軟體的其他部分,PyQGIS 說明如何用程式碼重新投影,AI Agent 則能在 QGIS 中靠一則訊息修正圖層的 CRS。QGIS AI 總覽依任務列出了其他 AI 外掛。