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 相关文章推荐
图片自动更新(说明)
Oct 02 Javascript
javascript IFrame 强制刷新代码
Jul 23 Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
Aug 17 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
jQuery div拖拽用法实例
Jan 14 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
Mar 30 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
Oct 26 Javascript
详解基于vue的服务端渲染框架NUXT
Jun 20 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
Oct 09 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
May 20 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
图书管理程序(二)
2006/10/09 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
php使用codebase生成随机数
2014/03/25 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
ThinkPHP路由详解
2015/07/27 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
JS 继承实例分析
2008/11/04 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
JavaScript实现图片轮播特效
2019/10/23 Javascript
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
研究生自荐信
2013/10/09 职场文书
自我评价如何写好?
2014/01/05 职场文书
京剧自荐信
2014/01/26 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
《确定位置》教学反思
2016/02/18 职场文书
导游词之日月潭
2019/11/05 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
Python OpenCV超详细讲解基本功能
2022/04/02 Python