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 相关文章推荐
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
May 07 Javascript
javascript 关于# 和 void的区别分析
Oct 26 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
Mar 13 Javascript
js Calender控件使用详解
Jan 05 Javascript
JQuery中节点遍历方法实例
May 18 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
Jun 05 Javascript
JS实现图片的不间断连续滚动的简单实例
Jun 03 Javascript
jQuery grep()方法详解及实例代码
Oct 30 Javascript
js断点调试心得分享(必看篇)
Dec 08 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
May 21 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
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
用ODBC的分页显示
2006/10/09 PHP
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
php开启openssl的方法
2014/05/15 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
Python实现二维有序数组查找的方法
2016/04/27 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
Sql面试题
2013/03/20 面试题
优秀员工自荐信范文
2013/10/05 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
北京奥运会口号
2014/06/21 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
出国留学英文自荐信
2015/03/25 职场文书
PHP策略模式写法
2021/04/01 PHP
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android