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 css的使用介绍
Apr 18 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
Jan 14 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
浅谈javascript中关于日期和时间的基础知识
Jul 13 Javascript
jquery 正整数数字校验正则表达式
Jan 10 Javascript
vue安装遇到的5个报错及解决方法
Jun 12 Javascript
windows实现npm和cnpm安装步骤
Oct 24 Javascript
JavaScript复制变量三种方法实例详解
Jan 09 Javascript
小程序实现背景音乐播放和暂停
Jun 19 Javascript
vue-i18n实现中英文切换的方法
Jul 06 Javascript
JavaScript实现刮刮乐效果
Nov 01 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
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
php实现cookie加密的方法
2015/03/10 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
jquery tools之tooltip
2009/07/25 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
Python的词法分析与语法分析
2013/05/18 Python
浅谈Python的文件类型
2016/05/30 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python如何调用字典的key
2020/05/25 Python
Python必须了解的35个关键词
2020/07/16 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
推普周活动总结
2014/08/28 职场文书
完整版商业计划书
2014/09/15 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
2014教师年度工作总结
2014/11/10 职场文书
幼师辞职信范文
2015/02/27 职场文书
高二英语教学反思
2016/03/03 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
纯html+css实现Element loading效果
2021/08/02 HTML / CSS