遇到問題:繪制高德地圖,添加多個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()));
//得到的數據
});
}