課程設計考察百度地圖api的使用彭则,中間碰見問題,特此記錄球凰。
1. 在將內(nèi)嵌的js文件獨立出來的時候碰見這個問題:Uncaught TypeError: Cannot read property 'dc' of undefined
問題表面原因: 在于js文件中創(chuàng)建map對象傳進去的參數(shù)和之前的div中的id號不一致。
問題根本原因:map的構(gòu)造方法中傳入的參數(shù)就是我們的容器的id
更多詳細資料自行查看 百度地圖js api類圖參考
2. 百度地圖右鍵獲得點的坐標(api中事件參數(shù)的使用)
這個問題起源于我想郵件添加起始點和終止點。想通過鼠標點擊事件獲得對應點的坐標码党,然后再api中是這樣寫的德崭。但是不知道怎么用。
經(jīng)過資料查找發(fā)現(xiàn)是這樣用的
/*右鍵監(jiān)聽事件揖盘,獲得點擊坐標*/
map.addEventListener("rightclick",function(e){
point=new BMap.Point(e.point.lng,e.point.lat);
// alert("click"+e.Point.lat+"click"+e.Point.lng);
})
應該是通過回調(diào)函數(shù)來獲得對應的參數(shù)e眉厨。然后通過e來獲得對應的事件參數(shù)。注意這個地方是e.point,e.target 都是小寫扣讼。代表它擁有的對象參數(shù)缺猛,然后lng和lat是point的成員參數(shù)。
所以通過這種方式就得到了對應的點的坐標椭符。
3.js參數(shù)未定義問題
這個問題源于有時候界面刷新不出來荔燎,然后通過控制臺進行查看的時候,發(fā)現(xiàn)是在js文件報錯销钝,其中有參數(shù)未定義問題有咨。總結(jié)一下可能出現(xiàn)的問題蒸健。
1. js文件的引用順序
如果后面的js文件中的處理用到了之前的js文件中的數(shù)據(jù)座享,要注意先來后到問題。
比如說我們現(xiàn)在的百度地圖的api似忧。在所有的js文件的導入順序中我們最先應該導入的就是下面圖片中的這部分東西渣叛,即使是放到后面body結(jié)束標簽之前也應該是這樣的順序。
2. 注意命名規(guī)范和命名的準確性
很多問題的出現(xiàn)就是前后命名不同盯捌,但是我們本意是要求相同的淳衙,粗心大意的問題。
3.網(wǎng)速的鍋饺著。
有時候?qū)氲耐獠康膉s文件(尤其是網(wǎng)絡上的js文件)太大箫攀。所以在請求然后加載的過程中耗費的時間會非常長,然后就會導致我們的頁面刷新不出來幼衰,但是這個時候就再次刷新靴跛,慢慢的刷新。具體問題我也沒有解決掉渡嚣,但是可以考慮的途徑有js文件后置和js文件異步加載梢睛。
4.說一點感受。
- 一份好的api文件真的是開發(fā)利器识椰,同時一定要注意官方給的示例扬绪,非常方便開發(fā)。
- 一定要有信心裤唠,凡事總會有辦法解決的挤牛,一定要善于利用網(wǎng)絡資料。
- 作為一個寫博客的程序員种蘸,一定要有精益求精墓赴,寧缺毋濫的特性竞膳,現(xiàn)在搜到的這種亂七八糟的資料太多了,然后打開之后發(fā)現(xiàn)是同一個解答诫硕,甚至有的連人間的解答都沒有全部復制過來坦辟,弄了一半就來了。真實讓人惡心啊章办。
- 代碼的世界依舊那么神奇锉走。
未完待續(xù)。藕届。挪蹭。
我是李慶文,希望我們能做一個有趣的人休偶。