随鼠标移动在状态栏显示地图坐标(转载)
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
鼠标在地图上移动时,会产生一系列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
相关文章推荐
- 随鼠标移动在状态栏显示地图坐标(转载)
- 随鼠标移动在状态栏显示地图坐标
- 为鼠标移动事件添加新的功能-在状态栏显示鼠标坐标
- Silverlight4下bing map实现鼠标移动时显示地图上的经纬坐标
- 百度地图开发 随着鼠标移动在状态栏显示鼠标中心的坐标
- MFC中状态栏显示鼠标坐标位置
- JS随鼠标坐标移动,显示浮动层内容
- OpenLayers3基础教程之鼠标移动显示坐标
- ol4鼠标移动事件,将鼠标位置px转换为地图坐标
- [转]如何在视图中跟随鼠标移动显示曲线坐标
- MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- 经纬度随鼠标在地图上移动随时显示
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- Dev ChartControl鼠标移动显示坐标点
- MFC:在状态栏最左边显示鼠标当前的坐标
- jsp页面显示中国省份区域地图+鼠标移动变色
- 设计一个含有一个表单的页面,并且在表单上放入一个文本框。编写程序,当鼠标在页面上移动时,鼠标的坐标将显示在这个文本框中。