[程序員筆記]百度地圖網(wǎng)頁端開發(fā)疑難雜癥

課程設(shè)計(jì)考察百度地圖api的使用,中間碰見問題,特此記錄。

1. 在將內(nèi)嵌的js文件獨(dú)立出來的時(shí)候碰見這個問題:Uncaught TypeError: Cannot read property 'dc' of undefined


問題表面原因: 在于js文件中創(chuàng)建map對象傳進(jìn)去的參數(shù)和之前的div中的id號不一致。

Paste_Image.png

問題根本原因:map的構(gòu)造方法中傳入的參數(shù)就是我們的容器的id
更多詳細(xì)資料自行查看 百度地圖js api類圖參考

2. 百度地圖右鍵獲得點(diǎn)的坐標(biāo)(api中事件參數(shù)的使用)

這個問題起源于我想郵件添加起始點(diǎn)和終止點(diǎn)。想通過鼠標(biāo)點(diǎn)擊事件獲得對應(yīng)點(diǎn)的坐標(biāo),然后再api中是這樣寫的。但是不知道怎么用。



經(jīng)過資料查找發(fā)現(xiàn)是這樣用的

    /*右鍵監(jiān)聽事件,獲得點(diǎ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)的點(diǎn)的坐標(biāo)。

3.js參數(shù)未定義問題

這個問題源于有時(shí)候界面刷新不出來,然后通過控制臺進(jìn)行查看的時(shí)候,發(fā)現(xiàn)是在js文件報(bào)錯,其中有參數(shù)未定義問題??偨Y(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)速的鍋。

有時(shí)候?qū)氲耐獠康膉s文件(尤其是網(wǎng)絡(luò)上的js文件)太大。所以在請求然后加載的過程中耗費(fèi)的時(shí)間會非常長,然后就會導(dǎo)致我們的頁面刷新不出來,但是這個時(shí)候就再次刷新,慢慢的刷新。具體問題我也沒有解決掉,但是可以考慮的途徑有js文件后置js文件異步加載。

4.說一點(diǎn)感受。

  1. 一份好的api文件真的是開發(fā)利器,同時(shí)一定要注意官方給的示例,非常方便開發(fā)。
  2. 一定要有信心,凡事總會有辦法解決的,一定要善于利用網(wǎng)絡(luò)資料。
  3. 作為一個寫博客的程序員,一定要有精益求精,寧缺毋濫的特性,現(xiàn)在搜到的這種亂七八糟的資料太多了,然后打開之后發(fā)現(xiàn)是同一個解答,甚至有的連人間的解答都沒有全部復(fù)制過來,弄了一半就來了。真實(shí)讓人惡心啊。
  4. 代碼的世界依舊那么神奇。

未完待續(xù)。。。

我是李慶文,希望我們能做一個有趣的人。

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

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

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