ol4鼠标移动事件,将鼠标位置px转换为地图坐标
2018-01-19 15:07
603 查看
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>经纬度转换坐标</title> <link rel="stylesheet" href="https://openlayers.org/en/v4.6.4/css/ol.css" type="text/css"> <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x --> <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script> <script src="https://openlayers.org/en/v4.6.4/build/ol.js"></script> <style></style> </head> <body> <div id="map" style="width: 100%;height: 100%"></div> <script> var mapContainer = document.getElementById('map'); var map = new ol.Map({ layers:[new ol.layer.Tile({ source:new ol.source.OSM() })], target:'map', view:new ol.View({ center: [12950000, 4860000], zoom:7 }) }); mapContainer.addEventListener("mousemove", mousemove, false); function mousemove(e){ // 采用屏幕坐标计算得到地图坐标 var pos = {x:e.clientX-mapContainer.offsetLeft,y:e.clientY-mapContainer.offsetTop};//以左上为原点 //地图大小 var mapSize = map.getSize(); //图片的经纬度,即左下角的经纬度和右上角的经纬度 var temp = map.getView().calculateExtent(mapSize); var mapExtentL = {x:temp[0],y:temp[1]};//左下 var mapExtentR = {x:temp[2],y:temp[3]};//右上 //左下将坐标由3857投影转换为4326 temp = ol.proj.transform([ mapExtentL.x, mapExtentL.y], 'EPSG:3857', 'EPSG:4326'); var mapPosL = {x:temp[0],y:temp[1]}; //右上将坐标由3857投影转换为4326 temp = ol.proj.transform([ mapExtentR.x, mapExtentR.y], 'EPSG:3857', 'EPSG:4326'); var mapPosR = {x:temp[0],y:temp[1]}; pos = {lon:mapPosL.x+pos.x*(mapPosR.x-mapPosL.x)/mapSize[0],lat:mapPosR.y+pos.y*(mapPosL.y-mapPosR.y)/mapSize[1]}; console.log("经度:"+pos.lon.toFixed(6) +" 纬度:"+pos.lat.toFixed(6)); } </script> </body> </html>效果图
相关文章推荐
- Silverlight4下bing map实现鼠标移动时显示地图上的经纬坐标
- js-事件1_获取鼠标坐标clientX+scrollLeft及兼容性写法_跟随鼠标移动的divs
- 为鼠标移动事件添加新的功能-在状态栏显示鼠标坐标
- iOS cocos2d学习笔记-<九>坐标转换、点击事件响应、位置判断
- unity 鼠标位置转换成世界坐标
- 随鼠标移动在状态栏显示地图坐标(转载)
- C#计时器;控件移动;获取鼠标坐标;事件调用事件;
- 将鼠标位置转换成世界坐标
- 通过微信event会话中的location事件,转换程百度地图坐标。
- Python3 Tkinter基础 Frame bind 绑定鼠标移动事件 实时显示鼠标的位置
- Unity 鼠标点击位置转换成UI坐标
- C语言,移动鼠标获得当鼠标当前位置坐标
- 随鼠标移动在状态栏显示地图坐标(转载)
- 随鼠标移动在状态栏显示地图坐标
- 45度斜角地图与鼠标坐标转换
- Unity简单利用屏幕坐标转换实现鼠标控制物体移动
- 获取事件目标对象的位置坐标或者鼠标位置坐标(兼容IE和火狐)
- 分享一个Unity3D点击模型跟随鼠标移动的小脚本(包括屏幕视图到三维空间的坐标转换)
- 监听鼠标移动和点击事件并且通过发送广播的形式发出这个绝对坐标
- 获取事件目标对象的位置坐标或者鼠标位置坐标(兼容IE和火狐)