百度地图给map添加右键菜单(判断是否为marker)_javascript技巧
废话不多说了,直接给大家贴代码了。
js:
var s;//经度 var w;//纬度 map.addEventListener("rightclick",function(e){ if(e.overlay){//判断右键单击的是否是marker }else{ s = e.point.lng;//经度 w = e.point.lat;//维度 RightClick();//右键单击map出现右键菜单事件 } }); //右键单击map出现右键菜单事件 function RightClick(){ //alert('你点击的是地图'); var createMarker = function(map){//右键更新站名 if (confirm("要新建站点吗?")){ if(true){ $(".AllSetMassage").show(); } } }; var markerMenu=new BMap.ContextMenu(); markerMenu.addItem(new BMap.MenuItem('新建站点',createMarker.bind(map))); map.addContextMenu(markerMenu);//给标记添加右键菜单 }
效果:
右键单击map(非marker)
右键单击marker:
PS:百度地图给多个marker添加右键菜单(删除、更新)
js:
$.getJSON("./GetStationPlaceServlet",function(json){ for(var i=;i<json.length;i++){ var obj = eval(json); //获取经纬度 fStationlon = parseFloat(obj[i].Stationlon); fStationlat = parseFloat(obj[i].Stationlat); var pt = new BMap.Point(fStationlon,fStationlat); var myIcon = new BMap.Icon("photo/station.png",new BMap.Size(,),{ anchor: new BMap.Size(, ) }); var marker = new BMap.Marker(pt,{icon:myIcon}); // 创建标注 map.addOverlay(marker); //将标注添加到地图中 var strRes = parseFloat(obj[i].StationId); addClickHandler(strRes,marker);//左键单击marker事件 RightClickHandler(strRes,marker);//右键单击marker出现右键菜单事件 RightClick();//右键地图出现右键菜单事件 } }); //右键单击marker出现右键菜单事件 function RightClickHandler(stationId,marker){ var removeMarker = function(e,ee,marker){//右键删除站点 var json={ "StationId":stationId, }; if (confirm("要删除站点"+stationId+"吗?")){ if(true){ $.getJSON("./DeleteStationServlet",{json:JSON.stringify(json)},function(json){ if(json.result==true){ alert("删除站点"+stationId+"成功!"); map.removeOverlay(marker); //将地图中的标记删除 } }); } } }; var updateMarker = function(marker){//右键更新站名 if (confirm("要修改站点"+stationId+"的站名吗?")){ if(true){ $(".AllUpdateMassage").show(); $("#stationId").val(stationId); } } }; var markerMenu=new BMap.ContextMenu(); markerMenu.addItem(new BMap.MenuItem('删除站点',removeMarker.bind(marker))); markerMenu.addItem(new BMap.MenuItem('修改站名',updateMarker.bind(marker))); marker.addContextMenu(markerMenu);//给标记添加右键菜单 } //鼠标左键单击marker事件 function addClickHandler(stationId,marker){ marker.addEventListener("click",function(e){ var p = marker.getPosition(); //获取marker的位置 var staId={ "StationId":stationId, }; $.getJSON("./GetStationInfoServlet",{json:JSON.stringify(staId)},function(json){ for(var i=;i<json.length;i++){ var obj = eval(json); stationName = obj[i].stationName; var content = "站点编号:"+stationId+"<br/>"+ "站点名称:"+stationName; openInfo(content,e); } }); }); } //左键单击marker弹出窗口事件 function openInfo(content,e){ var p = e.target; var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat); var infoWindow = new BMap.InfoWindow(content,opts); // 创建信息窗口对象 map.openInfoWindow(infoWindow,point); //开启信息窗口 } //修改站点站名 function update(){ var stationId=$("#stationId").val();//编号 var stationName=$(".AllUpdateMassage_name").val();//名字 var json={ "StationId":stationId, "StationName":stationName }; $.getJSON("./UpdateStationServlet",{json:JSON.stringify(json)},function(json){ if(json.result==true){ alert("站点"+stationId+"站名修改成功!"); $(".AllUpdateMassage").hide(); } else{ alert("失败!"); } }); }
效果图:
地图上和数据库中都已删除此点信息:
我在实现这个时,发现有人只能在一个marker上添加右键菜单。我这个不存在这个问题。原理好像是关于闭包啥的,我也是新手不是很清楚,望懂得人不惜指教。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

有些朋友升级完Win11系统后发现鼠标点击右键弹出菜单的速度变慢了,这是怎么回事呢?是不是因为配置的问题,还是说要进行什么样的设置,本站小编今天给大家解决怎么解决,其实我们可以将性能调至最高性能,这样就不会有反应慢的问题了。Win11鼠标右键弹出菜单很慢的解决方法1、首先在开始菜单中找到系统设置。3、接着在下方相关链接中找到高级系统设置。5、然后在视觉效果选项卡下,勾选调整为最佳性能即可。

win10系统内置解压缩软件WinRAR,一般大家在文件夹上右键就可找到缩小选项,可是有些用户发现自己的右键没有压缩包选项,怎么办呢?你先在菜单栏找到WinRAR开启,随后点击上边的选项,随后挑选设定,在开启窗口中转换到集成菜单栏,点击前后文菜单项目按键,勾选“添加到压缩包”即可。win10右键没有压缩包选项怎么办:能够在Windows10桌面先后点击“开始/WinRar/Winrar”菜单项。这时便会开启Winrar的软件主界面,点击上边的“选项”菜单项。在弹出的选项下拉列表中,大家点击“设定

不少的win11用户们想将自己的画图程序添加到右键菜单上,那么这要怎么添加?用户们可以直接的右键点击开始下的windows终端,然后直接的将下列的代码复制到相对应的位置上就可以了。下面就让本站来为用户们来仔细的介绍一下Win11右键菜单添加画图程序的方法吧。Win11右键菜单添加画图程序的方法1、首先用鼠标右键点击“开始”按钮(或者按Win+X键),选择点击“Windows终端(管理员)”。2、然后在终端应用程序里粘贴这串代码【reg.exeadd&ldqu

win11文件右键菜单卡死怎么解决?如果需要查看文件具体属性该怎么操作?我们经常会左键选中文件后在右键打开菜单进行属性查看,但是有许多使用win11版本的操作系统的小伙伴们经常会遇到在右键文件时总是要等待一会,右键菜单才会显示,这样对用户们的电脑使用体验非常有影响,对此,小编用以下的文章为大家介绍一下如何解决这个问题。很多小伙伴不知道怎么详细操作,小编下面整理了win11右键菜单卡死解决教程,如果你感兴趣的话,跟着小编一起往下看看吧!win11右键菜单卡死解决教程一览1、首先我们同时按下【ctr

我们在使用win10系统的时候,使用鼠标去右键桌面或者右键菜单的时候,发现菜单等都打不开,无法正常的去使用电脑了,这时候就需要恢复系统来解决问题。win10右键菜单管理打不开:1、首先打开我们的控制面板,然后点击。2、然后点击安全和维护下的。3、再点击右侧的来恢复系统即可。4、如果还是无法使用,是看是否是鼠标本身出了问题。5、如果确定鼠标没有问题的话,按下+,输入。6、执行完毕后,重启电脑即可。

很多小伙伴用右键点击新建的时候,发现列表里的Word、ppt、Excel都不见了,这是怎么一回事呢?其实是注册列表缺少了一些文件,我们只要进入设置里调整一下数值就可以了,具体的教程下面跟小编一起来看看吧。修复右键新建word不见的方法1、点击开始,找到运行命令行,输入regedit,打开注册表。2、在左侧找到HKEY_CLASSES_ROOT目录,并展开。3、首先,我们利用CTRL+F快捷键,查找“docx”的位置,当然这里也可以自己下拉查找。4、找到之后,不用展开目录。我们可以看到右侧有一个(

由于win11更改了鼠标右键菜单,很多朋友感觉使用起来不习惯,想要知道win11鼠标右键菜单怎么设置,其实我们只要打开注册表,在其中就可以编辑右键菜单了。win11鼠标右键菜单怎么设置:1、首先按下键盘“Win+R”打开运行。2、在其中输入“regedit”并回车打开注册表。3、打开后进入“计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FeatureManagement\Overrides\4”位置。4、随后右键4文件夹,选择新建

很多的用户们在升级完win11后发现右键菜单使用得不是很顺手,这就使得很多的用户们在询问win11右键菜单不折叠怎么设置?其实方法很简单的,用户们可以进入到任务栏设置下来进行操作就可以了。下面就让本站来为用户们来仔细的介绍一下win11右键菜单不折叠设置教程吧。win11右键菜单不折叠设置教程1、在任务栏空白位置点击鼠标右键,进入任务栏设置。3、点击打开的图标就会直接显示出来,如果是关闭状态,那么就会收纳在小三角里面。
