zoukankan      html  css  js  c++  java
  • 『实践』百度地图给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:

  • 相关阅读:
    Qt Release 构建时强制包含调试信息
    Spring Kafka(二)操作Topic以及Kafka Tool 2的使用
    PostgreSQL全文检索简介
    qcow2虚拟磁盘映像转化为vmdk
    Nodejs-JWT token认证:为什么要使用token、token组成(头部、载荷、签名)、jwt使用过程以及token对比session的好处(单点登录、减轻服务器压力、存储信息等)
    [Kotlin] Multi ways to write constuctor in Kotlin
    [CSS] Use CSS Transforms to Create Configurable 3D Cuboids
    [CSS] Use CSS Variables Almost like Boolean Values with Calc (maintainable css)
    [Kotlin] Typecheck with 'is' keyword, 'as' keyword for assert type
    [Kotlin] When to add () and when not to
  • 原文地址:https://www.cnblogs.com/landiljy/p/5241442.html
Copyright © 2011-2022 走看看