久久久久久一区_中文字幕在线不卡_精品不卡_久久久网_精品亚洲一区二区三区在线观看_欧美精品一区二区三区在线四季

  百度離線地圖 教程

地圖事件

編輯時(shí)間:2017-03-02

地圖事件概述

瀏覽器中的JavaScript是“事件驅(qū)動(dòng)的”,這表示JavaScript通過(guò)生成事件來(lái)響應(yīng)交互,并期望程序能夠“監(jiān)聽(tīng)”感興趣的活動(dòng)。例如,在瀏覽器中,用戶的鼠標(biāo)和鍵盤(pán)交互可以創(chuàng)建在DOM內(nèi)傳播的事件。對(duì)某些事件感興趣的程序會(huì)為這些事件注冊(cè)JavaScript事件監(jiān)聽(tīng)器,并在接收這些事件時(shí)執(zhí)行代碼。

百度地圖API擁有一個(gè)自己的事件模型,程序員可監(jiān)聽(tīng)地圖API對(duì)象的自定義事件,使用方法和DOM事件類似。但請(qǐng)注意,地圖API事件是獨(dú)立的,與標(biāo)準(zhǔn)DOM事件不同。

事件監(jiān)聽(tīng)

百度地圖API中的大部分對(duì)象都含有addEventListener方法,您可以通過(guò)該方法來(lái)監(jiān)聽(tīng)對(duì)象事件。例如,BMap.Map包含click、dblclick等事件。在特定環(huán)境下這些事件會(huì)被觸發(fā),同時(shí)監(jiān)聽(tīng)函數(shù)會(huì)得到相應(yīng)的事件參數(shù)e,比如當(dāng)用戶點(diǎn)擊地圖時(shí),e參數(shù)會(huì)包含鼠標(biāo)所對(duì)應(yīng)的地理位置point。

有關(guān)地圖API對(duì)象的事件,請(qǐng)參考完整的API參考文檔。

addEventListener方法有兩個(gè)參數(shù):監(jiān)聽(tīng)的事件名稱和事件觸發(fā)時(shí)調(diào)用的函數(shù)。在下面示例中,每當(dāng)用戶點(diǎn)擊地圖時(shí),會(huì)彈出一個(gè)警告框。

var map = new BMap.Map("container");   

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);   

map.addEventListener("click", function(){   

 alert("您點(diǎn)擊了地圖。");   

});

通過(guò)監(jiān)聽(tīng)事件還可以捕獲事件觸發(fā)后的狀態(tài)。下面示例顯示用戶拖動(dòng)地圖后地圖中心的經(jīng)緯度信息。

var map = new BMap.Map("container");   

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);   

map.addEventListener("dragend", function(){   

 var center = map.getCenter();   

 alert("地圖中心點(diǎn)變更為:" + center.lng + ", " + center.lat);   

});

事件參數(shù)和this

在標(biāo)準(zhǔn)的DOM事件模型中(DOM Level 2 Events),監(jiān)聽(tīng)函數(shù)會(huì)得到一個(gè)事件對(duì)象e,在e中可以獲取有關(guān)該事件的信息。同時(shí)在監(jiān)聽(tīng)函數(shù)中this會(huì)指向觸發(fā)該事件的DOM元素。 百度地圖API的事件模型與此類似,在事件監(jiān)聽(tīng)函數(shù)中傳遞事件對(duì)象e,每個(gè)e參數(shù)至少包含事件類型(type)和觸發(fā)該事件的對(duì)象(target)。 API還保證函數(shù)內(nèi)的this指向觸發(fā)(同時(shí)也是綁定)事件的API對(duì)象。

例如,通過(guò)參數(shù)e得到點(diǎn)擊的經(jīng)緯度坐標(biāo)。

var map = new BMap.Map("container");   

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);   

map.addEventListener("click", function(e){   

 alert(e.point.lng + ", " + e.point.lat);   

});

或者通過(guò)this得到地圖縮放后的級(jí)別。

var map = new BMap.Map("container");   

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);   

map.addEventListener("zoomend", function(){   

 alert("地圖縮放至:" + this.getZoom() + "級(jí)");   

});

移除監(jiān)聽(tīng)事件

當(dāng)您不再希望監(jiān)聽(tīng)事件時(shí),可以將事件監(jiān)聽(tīng)進(jìn)行移除。每個(gè)API對(duì)象提供了removeEventListener用來(lái)移除事件監(jiān)聽(tīng)函數(shù)。

下面示例中,用戶第一次點(diǎn)擊地圖會(huì)觸發(fā)事件監(jiān)聽(tīng)函數(shù),在函數(shù)內(nèi)部對(duì)事件監(jiān)聽(tīng)進(jìn)行了移除,因此后續(xù)的點(diǎn)擊操作則不會(huì)觸發(fā)監(jiān)聽(tīng)函數(shù)。

var map = new BMap.Map("container");   

map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);   

function showInfo(e){   

 alert(e.point.lng + ", " + e.point.lat);   

 map.removeEventListener("click", showInfo);   

}   

map.addEventListener("click", showInfo);


主站蜘蛛池模板: 精品国产乱码久久久久久1区2区 | 久久久久久久久久国产 | 精品一区二区三区免费 | 欧美九九 | 狠狠狠干 | 欧美黄视频在线观看 | 国产精品久久久久久吹潮 | 国产精品天天干 | 伊人激情综合 | 97久久精品人人做人人爽50路 | 国产精品视频网站 | 97视频在线免费观看 | 国产精品嫩草99av在线 | 999视频在线 | 操久久| 国产一区二区三区免费在线观看 | 国产成人精品一区二区三区 | 日本亚洲国产一区二区三区 | 国产精品视频播放 | 青娱乐青青草 | 性培育学校羞耻椅子调教h 另类中文字幕 | 毛片在线看片 | 国产成人精品在线观看 | 日韩av一区在线观看 | 亚洲高清视频在线观看 | 亚洲精品久久久 | 在线观看免费视频91 | 欧美一区永久视频免费观看 | 日韩色图在线观看 | 欧美一区二区三区在线观看 | 日韩精品一区二区三区 | 久久婷婷国产麻豆91天堂 | 久久精品网 | 成人a网| 国产精品久久久久久婷婷天堂 | 国产精品亲子伦av一区二区三区 | 午夜精品久久久久久久久久久久久 | 久久精品一区二区三区四区 | 欧美精品一区二区三区四区五区 | www.中文字幕 | 精品国产欧美一区二区三区成人 |