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