openlayers如何在地图上添加右键菜单

 1、在openlayers的浏览器事件中添加一个"contextmenu"事件,该事件在单击鼠标右键时被激发。我是在页面初始化时候添加的,也可以直接去修改Events.js;
页面初始化时候添加的代码:
OpenLayers.Events.prototype.BROWSER_EVENTS=[ "mouseover", "mouseout",
"mousedown", "mouseup", "mousemove",
"click", "dblclick", "resize", "focus", "blur","contextmenu"];
2、浏览器有一个默认的右键菜单,我们必须把它屏蔽掉,让其只显示自定义的右键菜单。
解决办法:(1)在页面初始化时,会创建一个map对象,只需要在完成创建map对象后添加下面这段代码即可;
map.div.oncontextmenu = function () { return false;};
(2)也可以直接对Map.js进行修改,在其initialize()中添加这段代码;
3、定义"mouseRight "鼠标右键控件,为其动态绑定一个"contextmenu"事件,并激活该控件。代码如下:
var mouseRight = new OpenLayers.Control();
OpenLayers.Util.extend(mouseRight, {
contextmenu: function(e) { ...... },
setMap: function() { OpenLayers.Control.prototype.setMap.apply(this, arguments); this.map.events.register( 'contextmenu', this, this.contextmenu); }
});
mouseRight.activate();
map.addControl(mouseRight);
其中contextmenu: function(e){}为相应的事件处理函数,当在地图上单击右键后就会去实现这个函数中定义的一系列动作,如我的feature对象的查询、定位feature对象和弹出右键菜单等功能都定义在这个函数里。
4、自定义弹出右键菜单。利用openlayers的Popup,在单击右键定位到feature对象后,弹出菜单图层。

注:针对2.5版本

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值