百度地圖JS api給marker和label添加點擊事件

話不多說,直接上代碼:

    var points = []; //座標點數組
    var label = []; //label數組
	var marker = []; //marker數組
	$.each(data, function(index,value){
	    var myIcon = new BMap.Icon("https://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), {  
            offset: new BMap.Size(10, 25), // 指定定位位置  
            imageOffset: new BMap.Size(0, 0 - 12 * 25) // 設置圖片偏移  
        });
        var point = new BMap.Point(value.lng,value.lat);
        points.push(point);
        marker[index] = new BMap.Marker(point,{icon:myIcon});
        label[index] = new BMap.Label("時間:"+value.datetime,{
        	offset: new BMap.Size(10, -30)
        });
        label[index].setStyle({
        	border: "1px solid #FF6A00",
        	borderRadius: "5px",
        	padding: "5px",
        	color: "#333",
        	backgroundColor: "white",
        });
		marker[index].setLabel(label[index]);
        map.addOverlay(marker[index]);

        label[index].addEventListener("click", function(){ //點擊label隱藏label
        	label[index].setStyle({
        		display: "none",
        	})
        });
        marker[index].addEventListener("click", function(){ //點擊marker顯示label
        	label[index].setStyle({
        		display: "block",
        	})
        });

    });
map.setViewport(points);

這樣可以設置多個marker的點擊事件,想要更改label樣式的話可以使用label.setStyle({});函數,與CSS樣式一樣,只需把CSS語法的-分隔符去掉,下一個詞開頭大寫就行,例如background-color改成backgroundColor即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章