1 var map; 2 var s;//經度 3 var w;//緯度 4 $(document).ready(function(){ 5 $(".mune").load("jsp/common.jsp"); 6 map = new BMap.Map("container"); 7 var point = new BMap.Point(121.577382, 29.874545); //++江東區中心的坐標 8 map.centerAndZoom(point, 15); //++設置為中心點 9 map.enableScrollWheelZoom(true); //啟用滾輪放大縮小 10 map.setDefaultCursor("crosshair"); 11 opts = { 12 width : 200, // 信息窗口寬度 13 height: 80, // 信息窗口高度 14 title : "站點信息" , // 信息窗口標題 15 enableMessage:true//設置允許信息窗發送短息 16 }; 17 18 19 $.getJSON("./GetStationPlaceServlet",function(json){ 20 for(var i=0;i<json.length;i++){ 21 var obj1 = eval(json); 22 //獲取經緯度 23 fStationlon = parseFloat(obj1[i].Stationlon); 24 fStationlat = parseFloat(obj1[i].Stationlat); 25 var pt = new BMap.Point(fStationlon,fStationlat); 26 var myIcon = new BMap.Icon("photo/station.png",new BMap.Size(22,22)); 27 var marker = new BMap.Marker(pt,{icon:myIcon}); // 創建標注 28 map.addOverlay(marker); //將標注添加到地圖中 29 var strRes = parseFloat(obj1[i].StationId); 30 addClickHandler(strRes,marker);//左鍵單擊marker事件 31 RightClickHandler(strRes,marker);//右鍵單擊marker出現右鍵菜單事件 32 33 34 } 35 }); 36 map.addEventListener("rightclick",function(e){ 37 if(e.overlay){//判斷右鍵單擊的是否是marker 38 39 }else{ 40 s = e.point.lng;//經度 41 w = e.point.lat;//維度 42 RightClick();//右鍵單擊map出現右鍵菜單事件 43 } 44 }); 45 }); 46 47 //右鍵單擊map出現右鍵菜單事件 48 function RightClick(){ 49 var createMarker = function(map){//右鍵更新站名 50 if (confirm("要新建站點嗎?")){ 51 if(true){ 52 $(".AllSetMassage").show(); 53 } 54 } 55 }; 56 var markerMenu=new BMap.ContextMenu(); 57 markerMenu.addItem(new BMap.MenuItem('新建站點',createMarker.bind(map))); 58 map.addContextMenu(markerMenu);//給標記添加右鍵菜單 59 } 60 61 //右鍵單擊marker出現右鍵菜單事件 62 function RightClickHandler(stationId,marker){ 63 var removeMarker = function(e,ee,marker){//右鍵刪除站點 64 var json={ 65 "StationId":stationId, 66 }; 67 if (confirm("要刪除站點"+stationId+"嗎?")){ 68 if(true){ 69 $.getJSON("./DeleteStationServlet",{json:JSON.stringify(json)},function(json){ 70 if(json.result==true){ 71 alert("刪除站點"+stationId+"成功!"); 72 map.removeOverlay(marker); //將地圖中的標記刪除 73 } 74 }); 75 } 76 } 77 }; 78 var updateMarker = function(marker){//右鍵更新站名 79 if (confirm("要修改站點"+stationId+"的站名嗎?")){ 80 if(true){ 81 $(".AllUpdateMassage").show(); 82 $("#stationId").val(stationId); 83 } 84 } 85 }; 86 var markerMenu=new BMap.ContextMenu(); 87 markerMenu.addItem(new BMap.MenuItem('刪除站點',removeMarker.bind(marker))); 88 markerMenu.addItem(new BMap.MenuItem('修改站名',updateMarker.bind(marker))); 89 marker.addContextMenu(markerMenu);//給標記添加右鍵菜單 90 }
效果:
右鍵單擊map(非marker)
右鍵單擊marker: