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 相关文章推荐
javascript开发中因空格引发的错误
Nov 08 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
Sep 05 Javascript
JQuery对id中含有特殊字符的转义处理示例
Sep 06 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
Oct 17 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
浅谈Vue组件及组件的注册方法
Aug 24 Javascript
JS原生带缩略图的图片切换效果
Oct 10 Javascript
重学JS 系列:聊聊继承(推荐)
Apr 11 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
Apr 17 Javascript
es6函数之箭头函数用法实例详解
Apr 25 Javascript
微信小程序 scroll-view的使用案例代码详解
Jun 11 Javascript
为什么node.js不适合大型项目
Apr 28 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中全局变量global的使用演示代码
2011/05/18 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
php缓存技术详细总结
2013/08/07 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
php常用正则函数实例小结
2016/12/29 PHP
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
Python 文件管理实例详解
2015/11/10 Python
python 性能提升的几种方法
2016/07/15 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
如何唤起类中的一个方法
2013/11/29 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
大学同学聚会邀请函
2014/01/19 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
与死神共舞观后感
2015/06/15 职场文书
国富论读书笔记
2015/06/26 职场文书
生产实习心得体会范文
2016/01/22 职场文书