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: