高德地圖marker的點擊事件


遇到問題:繪制高德地圖,添加多個marker。並且給多個marker添加點擊事件,點擊的時候,無法檢測到當前點擊的marker。自己使用prototype添加屬性並沒有用。

解決辦法:參考官方文檔:https://lbs.amap.com/api/javascript-api/reference/overlay#marker

借助marker里的extData屬性。用戶自定義屬性,支持JavaScript API任意數據類型,如Marker的id等

DEMO:

for(var j = 0,map;j < list.size; j++){
var myObj= list.data[j];
console.log(myObj);
var myLngLat=new AMap.LngLat(myObj.x,myObj.y);
console.log(myLngLat);
var marker = new AMap.Marker({
position: myLngLat,
map: map,
clickable: true,
extData:thit.allCommunityList[j]
});
marker.setLabel({
//修改label相對於maker的位置
offset: new AMap.Pixel(3, -25),
content: thit.allCommunityList[j].communityName,//markerContentCom
});
console.log(thit.allCommunityList[j]);
thit.currentSelectCommunity = thit.allCommunityList[j];
var clickHandle = AMap.event.addListener(marker, 'click', function(e) {
thit.cur =JSON.parse(JSON.stringify(e.target.getExtData()));
//得到的數據
});
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM