更快捷的PG+PostGIS轉(zhuǎn)換火星坐標(biāo)系方法

關(guān)于坐標(biāo)系

我們通常用經(jīng)緯度來(lái)表示一個(gè)地理位置,但是由于一些原因,我們從不同渠道得到的經(jīng)緯度信息可能并不是在同一個(gè)坐標(biāo)系下。

? 高德地圖、騰訊地圖以及谷歌中國(guó)區(qū)地圖使用的是GCJ-02坐標(biāo)系

? 百度地圖使用的是BD-09坐標(biāo)系

? 底層接口(HTML5 Geolocation或ios、安卓API)通過(guò)GPS設(shè)備獲取的坐標(biāo)使用的是WGS-84坐標(biāo)系

不同的坐標(biāo)系之間可能有幾十到幾百米的偏移,所以在開(kāi)發(fā)基于地圖的產(chǎn)品,或者做地理數(shù)據(jù)可視化時(shí),我們需要修正不同坐標(biāo)系之間的偏差。

?WGS-84 - 世界大地測(cè)量坐標(biāo)系

WGS-84(World Geodetic System, WGS)是使用最廣泛的坐標(biāo)系,也是世界通用的坐標(biāo)系,GPS設(shè)備得到的經(jīng)緯度就是在WGS84坐標(biāo)系下的經(jīng)緯度。通常通過(guò)底層接口得到的定位信息都是WGS84坐標(biāo)系。如天地圖,osm底圖等。

GCJ-02 - 國(guó)測(cè)局坐標(biāo)系

GCJ-02(G-Guojia國(guó)家,C-Cehui測(cè)繪,J-Ju局),又被稱為火星坐標(biāo)系,是一種基于WGS-84制定的大地測(cè)量系統(tǒng),由中國(guó)國(guó)測(cè)局制定。此坐標(biāo)系所采用的混淆算法會(huì)在經(jīng)緯度中加入隨機(jī)的偏移。如谷歌地圖(中國(guó)區(qū)),高德地圖,騰訊地圖等。

?BD-09 - 百度坐標(biāo)系系

BD-09(Baidu, BD)是百度地圖使用的地理坐標(biāo)系,其在GCJ-02基礎(chǔ)上又增加了一次偏移,用來(lái)保護(hù)用戶隱私。從百度產(chǎn)品中得到的坐標(biāo)都是BD-09坐標(biāo)系。

如何安裝

PostgreSQL安裝PostGIS擴(kuò)展

復(fù)制geoc-pg-coordtansform.sql中代碼,在數(shù)據(jù)庫(kù)執(zhí)行

github地址:https://github.com/geocompass/pg-coordtransform

示例

GCJ02轉(zhuǎn)WGS84

select geoc_gcj02towgs84(geom) from test_table

WGS84轉(zhuǎn)GCJ02

select geoc_wgs84togcj02(geom) from test_table

WGS84轉(zhuǎn)BD09

select geoc_wgs84tobd09(geom) from test_table

BD09轉(zhuǎn)WGS84

select geoc_bd09towgs84(geom) from test_table

GCJ02轉(zhuǎn)BD09

select geoc_gcj02tobd09(geom) from test_table

BD09轉(zhuǎn)GCJ02

select geoc_bd09togcj02(geom) from test_table

轉(zhuǎn)換方法

基于 PG+PostGIS 進(jìn)行三種坐標(biāo)系之間的轉(zhuǎn)換,支持點(diǎn)、線、面、多點(diǎn)、多線、多面等各種需求進(jìn)行互轉(zhuǎn)

**geoc_gcj02towgs84:火星坐標(biāo)系轉(zhuǎn)WGS84坐標(biāo)系**

**geoc_wgs84togcj02:WGS84坐標(biāo)系轉(zhuǎn)火星坐標(biāo)系**

**geoc_wgs84tobd09:WGS84坐標(biāo)系轉(zhuǎn)百度坐標(biāo)系**

**geoc_bd09towgs84:百度坐標(biāo)系轉(zhuǎn)WGS84坐標(biāo)系**

**geoc_gcj02tobd09:火星坐標(biāo)系轉(zhuǎn)百度坐標(biāo)系**

**geoc_bd09togcj02:百度坐標(biāo)系轉(zhuǎn)火星坐標(biāo)系**

注意事項(xiàng)

**傳入的geometry參數(shù)的 SRID 必須是 4326 或 4490 ,否則返回null。**

?注

**本文如對(duì)您有幫助,請(qǐng)?jiān)?github 上 star 一下**

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容