OpenLayers-Map事件

OpenLayer的Map Event在Event.js文件的OpenLayers.Events中定义。

复制代码
 1 BROWSER_EVENTS: [
 2     "mouseover",        //鼠标位于对象或区域上
 3 "mouseout", //鼠标移出  4 "mousedown", //鼠标按下  5 "mouseup", //鼠标抬起  6 "mousemove", //鼠标移动  7 "click", //鼠标单击  8 "dblclick", //鼠标双击  9 "rightclick", //鼠标右击 10 "dblrightclick", //鼠标右键双击 11 "resize", //调整大小 12 "focus", //获得焦点 13 "blur" // 14 ],
复制代码

本文通过定义一个鼠标click事件,来说明Map Event的用法。

1. 定义Event响应函数

1 function onMapClick(e){
2     // 显示地图屏幕坐标 3 var str = "[Screen]:" + e.xy.x + "," + e.xy.y; 4 document.getElementById("screen_xy").innerHTML = str; 5 }

"screen_xy" 是用于显示鼠标点击时的坐标数据的div标签,其定义为:

1 <!--显示地图屏幕坐标Div-->
2 <div id="screen_xy"></div>

 

2. 在map上注册click事件及其响应函数

1 map.events.register("click", map, onMapClick);

 

此时,在地图上单击鼠标时,onMapClick就会响应click事件,并在预定义的div控件上显示坐标。

3.获取click事件的地图座标

  前面获取到只是click事件的屏幕坐标,如要获取地图坐标,需要进行转换。这里扩充onMapClick函数,实现转换。

复制代码
1 function onMapClick(e){
2     // 显示地图屏幕坐标 3 var str = "[Screen]:" + e.xy.x + "," + e.xy.y; 4 document.getElementById("screen_xy").innerHTML = str; 5 // 屏幕坐标向地图坐标的转换 6 var lonlat = map.getLonLatFromViewPortPx(e.xy); 7 str = "[Map]:" + lonlat.lat + "," + lonlat.lon; 8 document.getElementById("map_xy").innerHTML = str; 9 }
复制代码

 

map对象的getLonLatFromViewPortPx函数,可以实现将屏幕坐标转换为地图坐标。

1 // 添加显示地图坐标的Div
2 <div id=“map_xy"></div>

效果如下图所示。click后,左侧显示屏幕坐标,右侧显示地图坐标。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值