OpenLayers3实现鼠标移动显示坐标


Posted in Javascript onSeptember 25, 2020

本文实例为大家分享了OpenLayers3实现鼠标移动显示坐标的具体代码,供大家参考,具体内容如下

1. 前言

鼠标移动显示坐标,OpenLayers 3 框架提供了鼠标移动显示坐标的控件(ol.control.MousePosition),默认显示在地图的右上角,其样式可以自定义。在这个例子中,我们通过前面的加载 OSM 加载瓦片图层,实现在地图容器的左下角显示坐标点的信息。

2. 实现思路

(1)新建一个网页,参考前面的加载 OSM 瓦片地图,实现加载瓦片地图。
(2)在地图容器中新建一个 div 用于显示坐标信息,并设置其样式,通过设置 z-index 让其显示到地图上面。
(3)实例化一个鼠标位置控件(ol.control.MousePosition),可以根基实际的需求设置其,参数,例如坐标系(projection)、坐标值的显示格式(coordinateFormat)、关联显示鼠标位置坐标点的目标容器(target)等。
(4)在地图容器中加载到地图容器中。可以在实例化地图容器 Map 的代码中,通过设置 controlas 参数加载鼠标位置控件,也可以调用 map 对象的 addControl 方法加载控件。

3. 实现代码如下:

html:

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <title>鼠标移动显示坐标信息</title>
 <link rel="stylesheet" href="css/bootstrap.min.css" >
 <link rel="stylesheet" href="css/ol.css" >
 <link rel="stylesheet" href="css/ZoomSlider.css" >
 <script src="js/ol.js"></script>
 <script src="js/MousePosition.js"></script>
 <style>
 #map {
  width: 100%;
  height: 100%;
  position: absolute;
 }

 #mouse-position {
  float: left;
  position: absolute;
  bottom: 5px;
  width: 200px;
  height: 20px;
  /* 将z-index设置为显示在地图上层 */
  z-index: 2000;
 }
 /* 显示鼠标信息的自定义样式设置 */

 .custom-mouse-position {
  color: red;
  font-size: 16px;
  font-family: "微软雅黑";
 }
 </style>
</head>

<body onload="init()">
 <div id="map">
 <div id="mouse-position"></div>
 </div>
</body>

</html>

代码解析:

在地图容器中创建一个 div 用于显示坐标信息,并设置其样式,这个 div 层是是鼠标位置控件的最外层容器,它所包含的内层为鼠标信息文本标签,默认类名为 ol-mouse-position,可以自行定义。例如我们修改了他的字体大小以及颜色等。

js代码:

function init() {
 // 实例化鼠标位置控件
 var mousePositionControl = new ol.control.MousePosition({
 coordinateFormat: ol.coordinate.createStringXY(4), //坐标格式
 projection: 'EPSG:4326', //地图投影坐标系
 className: 'custom-mouse-position', //坐标信息显示样式
 // 显示鼠标位置信息的目标容器
 target: document.getElementById('mouse-position'),
 undefinedHTML: ' ' //未定义坐标的标记
 });


 // 实例化Map对象加载地图
 var map = new ol.Map({
 target: 'map', //地图容器div的id
 layers: [ //地图容器加载的图层
  new ol.layer.Tile({ //加载瓦片图层数据
  source: new ol.source.OSM() //数据源,加载OSM数据
  })
 ],
 view: new ol.View({
  center: [102, 35],
  zoom: 3
 }),
 // 加载控件到地图容器中
 // 加载鼠标位置控件
 controls: ol.control.defaults().extend([mousePositionControl])
 });
}

代码解析

(1)coordinateFormat:坐标值的显示格式。
(2)projection:投影坐标系,将当前鼠标位置的坐标点设置为当前坐标系下的相应值进行显示。
(3)target:关联显示其坐标点信息的目标容器,即最外层容器元素,就是我们创建的 id 为mouse-position 的 div 元素。
(4)className:坐标信息采用的显示样式的类名即坐标值文本的样式类名,就是我们自定义的样式类名 custom-mouse-position 。

实现效果如下:

OpenLayers3实现鼠标移动显示坐标

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
Mar 14 Javascript
JS.elementGetStyle(element, style)应用示例
Sep 24 Javascript
动态创建script标签实现跨域资源访问的方法介绍
Feb 28 Javascript
Firefox下无法正常显示年份的解决方法
Sep 04 Javascript
jQuery不使用插件及swf实现无刷新文件上传
Dec 08 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
js中遍历对象的属性和值的方法
Jul 27 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
js窗口震动小程序分享
Nov 28 Javascript
jquery实现图片轮播器
May 23 jQuery
js获取url页面id,也就是最后的数字文件名
Sep 25 #Javascript
OpenLayers3实现图层控件功能
Sep 25 #Javascript
OpenLayers实现图层切换控件
Sep 25 #Javascript
OpenLayers3实现对地图的基本操作
Sep 28 #Javascript
vue中实现弹出层动画效果的示例代码
Sep 25 #Javascript
OpenLayers3加载常用控件使用方法详解
Sep 25 #Javascript
在webstorm中配置less的方法详解
Sep 25 #Javascript
You might like
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
Node.js的环境安装配置(使用nvm方式)
2016/10/11 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
vue.js移动端tab组件的封装实践实例
2017/06/30 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
java直接调用python脚本的例子
2014/02/16 Python
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python爬取网页转换为PDF文件
2018/06/07 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
社区学习十八大感想
2014/01/22 职场文书
房屋过户委托书范本
2014/10/07 职场文书
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
使用Ajax实现进度条的绘制
2022/04/07 Javascript