新手入門百度地圖開發的(0,0)座標問題

        對於大部分人來講,由於百度地圖資料衆多,過度依賴搜索引擎等等原因。新接觸百度地圖開發工作其實並不容易。今天說說關於座標(0,0)的問題。

    

        首先仍然介紹座標系,我們先不管採用的和wgs84還是gcj02,bd09ll等座標系,他們有個共同的特點,就是默認座標(0,0)經緯度均爲零的時候。定位位置都會是非洲邊上的幾內亞灣,在某些縮放級別下,整個地圖區域的顏色都是同一個背景色。這個時候就會讓新手進入一個誤區認爲百度地圖出bug了,在各處求救說“百度地圖不顯示地圖bug誰遇到過,怎麼解決?”。實際上這個原因並不是bug,而是座標使用不當,沒有正確的把經度,緯度正確賦值給座標變量。

百度座標對象賦值過程:

//創建百度地圖的Point對象
var point = new BMap.Point(116.404,39.915);//116.404表示經度,39.915表示緯度,基於bd09ll標準

這裏常見的兩個坑:

1,經緯度範圍超出正常範圍,經度範圍區間 [-180,180],緯度範圍區間 [-90,90]。

2,經緯度順序顛倒,出現這個錯誤的原因常見於從事過谷歌地圖開發的新手,因爲谷歌地圖的point對象聲明時候採用緯度在前,經度在後的結構。而百度地圖選擇遵循中文的語義順序,經緯度,經度在前,緯度在後,new BMap.Point(經度,緯度);

     

        如何判斷是否是這個問題導致的“bug”的表象。只需要縮放地圖即可,最終縮放到可以看到大陸板塊的時候,就可以輕鬆看到當前的標註位置或者地圖中心位置是否是幾內亞灣,從而排查自己開發的過程中是否將(0,0)用作了地圖中心或者標註的位置。0是默認值,因此很多時候自己賦值失敗時候,其實是給百度座標的Point對象賦值了(0,0)。所以這個看似很小的問題,卻成爲新手入門百度地圖開發特別常見的一種情況。



        原文鏈接:https://www.opengps.cn/Share/Article/View.aspx?id=15,內容更新以此鏈接爲準


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章