簡體   English   中英

PostgreSQL 中的多邊形區域與 QGIS 不同

[英]Polygon area in PostgreSQL differs from QGIS

我下載了 OpenStreetMap 數據並使用 osm2pgsql 上傳到本地 PostgreSQL 數據庫。 由於 ST_Union function 只有一條記錄,我創建了一個新表(目前)。

CREATE TABLE IF NOT EXISTS m_temp.budapest_merge
(
    id text COLLATE pg_catalog."default" NOT NULL,
    st_union geometry(Polygon,3857),
    ter double precision,
    CONSTRAINT budapest_merge_pkey PRIMARY KEY (id)
)

然后我檢查了多邊形的面積。

SELECT ST_Area(st_union) FROM m_temp.budapest_merge

結果是1151156216.758265 sqm ,這對我來說很奇怪,因為我期待大約520 sqkm平方米。 我在 QGIS 中打開了 PostgreSQL 圖層,使用字段計算器工具的$area function 計算了面積。 結果是526031443.36087507 sqm ,這也符合我的期望和現實。

我的問題是這里有什么問題? QGIS 項目位於同一投影中 (EPSG:3857)。

我也知道命名幾何列 st_union 並不是很好,但這不是這里的主要問題。

在 Qgis 中, $area是(如果定義的話)橢圓體區域,即真實的地面區域,而area(geometry)是平面區域,即受幾何投影影響很大。

在 Postgis 中, st_area總是使用幾何投影,所以它與 QGIS area(geometry)等價。

話雖如此,當您遠離赤道時, 3857會嚴重扭曲距離和面積。 使用此投影來計算距離或面積是錯誤的。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM