『实践』百度地图给多个marker添加右键菜单(删除、更新)
- js:
- $.getJSON("./GetStationPlaceServlet",function(json){
- for(var i=0;i<json.length;i++){
- var obj1 = eval(json);
- //获取经纬度
- fStationlon = parseFloat(obj1[i].Stationlon);
- fStationlat = parseFloat(obj1[i].Stationlat);
- var pt = new BMap.Point(fStationlon,fStationlat);
- var myIcon = new BMap.Icon("photo/station.png",new BMap.Size(50,50),{ anchor: new BMap.Size(10, 10) });
- var marker = new BMap.Marker(pt,{icon:myIcon}); // 创建标注
- map.addOverlay(marker); //将标注添加到地图中
- var strRes = parseFloat(obj1[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=0;i<json.length;i++){
- var obj1 = eval(json);
- stationName = obj1[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上添加右键菜单。我这个不存在这个问题。原理好像是关于闭包啥的,我也是新手不是很清楚,望懂得人不惜指教。
『实践』百度地图给多个marker添加右键菜单(删除、更新)的更多相关文章
- 『实践』百度地图给map添加右键菜单(判断是否为marker)
var map; var s;//经度 var w;//纬度 $(document).ready(function(){ $(".mune").load("jsp/c ...
- 百度地图API 循环向 marker 添加 click事件
使用百度地图API,循环向marker添加InfoWindow时,所有的marker点击弹出的inforwindow为最后一个添加的infowindow,百度后,使用js闭包解决此问题,直接贴代码: ...
- 『实践』Yalmip获取对偶函数乘子
『实践』Yalmip获取对偶函数乘子 一.sdpsetting设置 Yalmip网站给出的说明 savesolveroutput默认为0,需要设置为1才会保存输出结果. 下面是我模型的约束个数: 二. ...
- 『实践』Yalmip+Ipopt+Cplex使用手册
Yalmip+Ipopt+Cplex使用手册 1.软件版本 Cplex 12.6.2,Matlab R2014a,Ipopt 3.12.9,Yalmip 2.Cplex添加方法 官方下载地址: htt ...
- 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现
『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...
- 百度地图API 海量点 自定义添加信息
<!--添加百度地图--> <script type="text/javascript" src="http://api.map.baidu.com/a ...
- 『实践』Yalmip建模+Cplex类求解
Yalmip建模+Cplex类求解 一.缘由 Yalmip只能设置部分Cplex的参数,所以需要调用Cplex类.而且optimize是Yalmip提供的常用函数,但此函数的返回结果参数有限. 图1 ...
- 『实践』Matlab实现Flyod求最短距离及存储最优路径
Matlab实现Flyod求最短距离及存储最优路径 一.实际数据 已知图中所有节点的X.Y坐标. 图中的节点编号:矩阵中的编号 J01-J62:1-62; F01-F60:63-122; Z01-Z0 ...
- 『实践』Android之短信验证码(用的Mob短信验证)
1.参考资料 Mob网站:http://www.mob.com/ Mob在Github上的例子:https://github.com/MobClub/SMSSDK-for-Android 教程:htt ...
随机推荐
- 一千个不用Null的理由
原文链接:http://www.importnew.com/27378.html 原文出处: xrzs 港真,Null 貌似在哪里都是个头疼的问题,比如 Java 里让人头疼的 NullPointer ...
- PKUWC Slay The Spire
题面链接 LOJ sol 好神啊.果然\(dp\)还是做少了,纪录一下现在的思维吧\(QAQ\). 我们首先可以发现期望是骗人的,要不然他乘的是什么xjb玩意. 其实就是要求所有方案的最优方案和. 因 ...
- 【HDU5469】Antonidas(点分治,字符串哈希)
[HDU5469]Antonidas(点分治,字符串哈希) 题面 HDU Vjudge 题解 啊哈?什么垃圾一眼点分治+Hash判断,哈哈哈哈哈,让我来码码码. 诶,怎么WA了.改改改改改. 诶,怎么 ...
- Android Intent 总结
//打开指定网页Intent intent = new Intent(Intent.ACTION_VIEW);intent.setData(Uri.parse("http://www.goo ...
- 解题:HEOI 2013 SAO
题面 不好讲,直接上式子吧=.= 设$dp[i][j]$表示考虑完$i$的子树后$i$的排名为$j$的方案数,然后转移类似树形背包,具体来说是(这里假设子树在$i$后选,其实反过来还用这个式子答案也是 ...
- 解题:USACO14MAR Sabotage
题面 题外话:我的实数二分有什么问题=.= 仍然(我为什么要这么说)是二分答案,如何检查呢?将所有的数减去二分出来的$mid$后求和得到和$sum$,然后如果在减出来的数列中能找出一段大于$sum$的 ...
- pyqt4_应用例子(计算器,对话框,进度条,日历等等)
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...
- 转:动态计算UITableViewCell高度详解
转自:http://www.cocoachina.com/industry/20140604/8668.html 不知道大家有没有发现,在iOS APP开发过程中,UITableView是我们显示 ...
- 一道非常易错的js面试题
题目如下: function Foo() { getName = function() { alert(1); }; return this; } Foo.getName = function() { ...
- js小记 unicode 编码解析
var str = "\\u6211\\u662Funicode\\u7F16\\u7801"; // 关于这样的数据转换为中文问题,常用的两种方法. // 1. eval 解析 ...