Postgresql
Postgis 使用 ST_Distance 報告一個點距自身 1216m
我有一個表格,其中包含 4236 投影中的幾何列。我從一行中獲取 ST_X 和 ST_Y 值,並從中創建一個點。然後,我將點和原始幾何列值轉換為 3857 投影,然後使用 ST_DISTANCE 獲得 2d 距離。我希望距離為~0。我實際上得到的答案是 1216.something 米。
這是創建兩個點的範常式式碼,它們應該是相同的,並取它們之間的距離,給出相同的~1216m 答案
select ST_Distance( ST_Transform( ST_SetSRID( ST_MakePoint(5.6100, 58.8900), 4236), 3857), ST_Transform( ST_SetSRID( ST_MakePoint(5.6100, 58.8900), 4326), 3857));
我大概在這裡犯了一些愚蠢的錯誤(我絕不是 GIS 期望的),但我做錯了什麼?
兩點使用不同的橢球。
EPSG:4 32 6 是 WGS
84。EPSG:4 23 6 是 1950 年的鬍子山。
轉換總是帶來一定的不准確。
select ST_Distance( ST_Transform( ST_SetSRID( ST_MakePoint(5.6100, 58.8900), 4236), 3857), ST_Transform( ST_SetSRID( ST_MakePoint(5.6100, 58.8900), 4326), 3857));
| st_距離 | | :---------------- | | 1216.975464330136 |
select ST_Distance( 'SRID=4326;POINT(5.6100 58.8900)'::geometry, 'SRID=4326;POINT(5.6100 58.8900)'::geometry );
| st_距離 | | :---------- | | 0 |
db<>在這裡擺弄