1. 程式人生 > >百度地圖-修改marker圖示(icon)及同時顯示多點

百度地圖-修改marker圖示(icon)及同時顯示多點

當前位置需另行後臺傳入

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head>
    <title>(按鈕)</title>
</head>
<body >
    <div>
        <fieldset >
                     (附近11)
        </fieldset>
        <fieldset>
            <div style="min-height: 400px; width: 100%;" id="map">
            </div>
            <script type="text/javascript">
                var map; //Map例項
                //後臺傳過來
                var currentLat = 116.345555;
			    var currentLon = 40.018661;
				var my ={ title: "我的位置"};
                var markerArr = [
                    { title: "華聯1", point: "116.364531,40.057003"},
                    { title: "<span style="font-family: Arial, Helvetica, sans-serif;">華聯2</span><span style="font-family: Arial, Helvetica, sans-serif;">",point: "116.340934,40.013401"},</span>
                    { title: "華潤3", point: "116.342213,40.047267"}
                ];
            
                function map_init() {
	                    map = new BMap.Map("map");
	                    //第1步:設定地圖中心點,當前城市
	                    var point = new BMap.Point(currentLat,currentLon);
	                    //第2步:初始化地圖,設定中心點座標和地圖級別。
	                    map.centerAndZoom(point, 14);
	                    //第3步:啟用滾輪放大縮小
	                    map.enableScrollWheelZoom(true);
	                    //第4步:向地圖中新增縮放控制元件
	                    var ctrlNav = new window.BMap.NavigationControl({
	                        anchor: BMAP_ANCHOR_TOP_LEFT,
	                        type: BMAP_NAVIGATION_CONTROL_LARGE
	                    });
	                    map.addControl(ctrlNav);
	                    //第5步:向地圖中新增縮圖控制元件
	                    var ctrlOve = new window.BMap.OverviewMapControl({
	                        anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
	                        isOpen: 1
	                    });
	                    map.addControl(ctrlOve);
	
	                    //第6步:向地圖中新增比例尺控制元件
	                    var ctrlSca = new window.BMap.ScaleControl({
	                        anchor: BMAP_ANCHOR_BOTTOM_LEFT
	                    });
	                    map.addControl(ctrlSca);
	                    
						
	                    //第7步:繪製點  
	                    for (var i = 0; i < markerArr.length; i++) {
	                        var p0 = markerArr[i].point.split(",")[0];
	                        var p1 = markerArr[i].point.split(",")[1];
	                        var maker = addMarker(new window.BMap.Point(p0, p1), i);
	                        addInfoWindow(maker, markerArr[i]); 
	                    }
			    //<span style="font-family: Arial, Helvetica, sans-serif;">第8步:</span><span style="font-family: Arial, Helvetica, sans-serif;">我的位置</span>		 
			    var mymaker = addMarker(new window.BMap.Point(currentLat, currentLon), 10);
			    addInfoWindow(mymaker, my);
						  
			 // 新增資訊視窗
		                function addInfoWindow(marker, poi) {
		                        marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳動的動畫
		                        var label = new window.BMap.Label(poi.title, { offset: new window.BMap.Size(20, -10) });
		                        marker.setLabel(label);
		                        var clo="";
		                        if("我的位置"==poi.title){
		                        	clo="#FF5782";
		                        }else{
		                        	clo="#E6FED";
		                        }
		                        var info = new window.BMap.InfoWindow("<p style=’font-size:12px;lineheight:1.8em;color:"+clo+";’>" +poi.title+ "</p>"); // 建立資訊視窗物件
		                    	marker.addEventListener("mouseover", openInfoWinFun);
			                    var openInfoWinFun = function () {
			                        this.openInfoWindow(info);
			                    };
		                }
                }

                // 新增標註
                function addMarker(point, index) {
                    var myIcon = new BMap.Icon("http://api.map.baidu.com/img/markers.png",
                        new BMap.Size(23, 25), {
                            offset: new BMap.Size(10, 25),
                            imageOffset: new BMap.Size(0, 0 -  index * 25)
							
                        });
                    var marker = new BMap.Marker(point, { icon: myIcon });
                    map.addOverlay(marker);
                    return marker;
                }	
                //非同步呼叫百度js
                function map_load() {
                    var load = document.createElement("script");
                    load.src = "http://api.map.baidu.com/api?v=1.4&callback=map_init";
                    document.body.appendChild(load);
                }
                window.onload = map_load;
            </script>
        </fieldset>
    </div>
</body>
</html>