您的位置:首页 > 其它

随鼠标移动在状态栏显示地图坐标(转载)

2009-02-05 23:29 507 查看
任务描述

鼠标在地图上移动时,会产生一系列mousemove事件,我们可以在客户端通过javascript脚本捕捉到鼠标事件的坐标,这个坐标是基于浏览器窗口的屏幕坐标。如果要显示鼠标点所在的地图坐标,有两种方法:第一,不停地向服务器发送AJAX请求,在服务器端将屏幕坐标转换成地图坐标,然后返回客户端,显示在状态栏。这样的话会有一个问题,就是鼠标拖动的时候会一直不停地发送请求,极大地增加了服务器的负担。当然,我们可以通过设置时间间隔,比如半秒钟更新一次坐标,达到视觉效果与服务器负担之间的均衡。第二种方法就是在每次地图状态更新时,发送一个AJAX请求,获取当前地图的X,Y最大、最小值,保存在客户端,当产生mousemove事件时,根据鼠标的屏幕坐标和地图的四角(左上、左下、右上、右下)坐标,实时地计算鼠标点的地图坐标。

显而易见,第二种方法效率更高。

实现步骤

第一步,定义两个全局变量,用来保存地图的左上角和右下角坐标:

Code

function calculateX(screenX,screenWidth){

var mapwidth = right_bottom.x - left_top.x;

return parseFloat((screenX*mapwidth)/screenWidth) + parseFloat(left_top.x);

}
原帖地址:http://bbs.esrichina-bj.cn/ESRI/thread-23832-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: