『實踐』百度地圖給map添加右鍵菜單(判斷是否為marker)


 
 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:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM