1. 程式人生 > >百度地圖和高德地圖的座標轉換

百度地圖和高德地圖的座標轉換

在專案開發中,車機使用了百度地圖傳高德GPS座標,web使用了高德地圖,問題就來了:在ios10版本以上,高德定位API呼叫失敗。換成百度地圖就可以,換成百度地圖,那麼久需要進行座標轉換,網上找的轉換方法
電子地圖地理座標系統及相關演算法的JavaScript實現
 
下面直接上程式碼:
火星座標 轉換到 百度地圖座標
 
function bd_encrypt(gg_lon, gg_lat){  
                var X_PI = Math.PI * 3000.0 / 180.0;  
                var x = gg_lon, y = gg_lat;  
                var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);  
                var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI);  
                var bd_lon = z * Math.cos(theta) + 0.0065;  
                var bd_lat = z * Math.sin(theta) + 0.006;  
                return {  
                    bd_lat: bd_lat,  
                    bd_lon: bd_lon  
                };  
            }  
 百度地圖座標 轉換到 火星座標
Js程式碼  收藏程式碼
function bd_decrypt(bd_lon,bd_lat) {  
                var X_PI = Math.Pi * 3000.0 / 180.0;  
                var x = bd_lon - 0.0065;  
                var y = bd_lat - 0.006;  
                var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);  
                var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);  
                var gg_lon = z * Math.cos(theta);  
                var gg_lat = z * Math.sin(theta);  
                return {  
                    gg_lon: gg_lon,  
                    gg_lat: gg_lat  
                }  
            }