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的开发个代阴影的对话框效果代码
Jul 28 Javascript
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
Nov 23 Javascript
jquery+css3打造一款ajax分页插件(自写)
Jun 18 Javascript
jQuery+AJAX实现无刷新下拉加载更多
Jul 03 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
JavaScript获取客户端IP的方法(新方法)
Mar 11 Javascript
jQuery获取radio选中项的值实例
Jun 18 Javascript
jQuery Dialog 取消右上角删除按钮事件
Sep 07 Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 Javascript
vue router 跳转后回到顶部的实例
Aug 31 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 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
set_include_path在win和linux下的区别
2008/01/10 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
详解JavaScript函数
2015/12/01 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
2017/04/13 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
Python实现在线音乐播放器
2017/03/03 Python
python爬虫之百度API调用方法
2017/06/11 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
Python ATM功能实现代码实例
2020/03/19 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
家长对小学生的评语
2014/01/28 职场文书
校园之声广播稿
2014/01/31 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
公休请假条
2014/04/11 职场文书
股票投资建议书
2014/05/19 职场文书
任命书模板
2014/06/04 职场文书
Java使用HttpClient实现文件下载
2022/08/14 Java/Android