OpenLayers3加载常用控件使用方法详解


Posted in Javascript onSeptember 25, 2020

本文实例为大家分享了OpenLayers3加载常用控件使用的具体代码,供大家参考,具体内容如下

1. 前言

地图控件就是对地图的缩放、全屏、坐标显示控件等,方便我们对地图进行操作。OpenLayers 3 封装了很多常用的地图控件,例如地图导航、比例尺、鹰眼、测量工具等,这些控件都是基于ol.control.Control虚基类进行封装,ol.control.Control的子类为各类常用的地图控件,可以通过Map对象的Control参数进行设置或者通过addControl方法将控件添加到地图窗口中。

在加载地图时OpenLayers 3 通过ol.control.defaults 默认加载了三个常用的空间:缩放控件(ol.control.Zoom)、旋转控件(ol.control.Roate)、图层数据源属性控件(ol.control.Attribution),因此我们可以通过鼠标在地图容器的左上角的缩放按钮,以及右下角的图层数据源控件来对地图进行操作。

OpenLayers3加载常用控件使用方法详解

2. 控件

2.1 导航控件

导航控件就是实现对地图的按级缩放,拖动导航条的上的滑块可以实现缩放操作。OpenLayers 3 框架提供的控制地图缩放的相关控件包括地图缩放控件(ol.control.Zoom)、缩放滑块(ol.control.ZoomSlider)、按钮式缩放到特定范围的控件(ol.control.ZoomToExtent),可以自定义这些控件的样式。
下面我们将通过修改地图缩放的相关控件的默认样式,实现一个导航条,效果如下:

OpenLayers3加载常用控件使用方法详解

实现步骤如下:

(1)新建一个页面,加载OSM瓦片地图,具体可以查看这篇文章OpenLayers3基础教程之实现地图显示功能
(2)地图加载完成后,通过初始化ZoomSlider、ZoomToExtent、控件,并通过addControl方法将控件加载到地图容器中。

代码如下

<!DOCTYPE html>
<html>

<head>
 <meta charset="utf-8" />
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <title>自定义导航功能</title>
 <!-- 引入ol.css,以及ol.css -->
 <link rel="stylesheet" href="css/ol.css" rel="external nofollow" >
 <script src="js/ol.js"></script>
 <style>
 #map {
 width: 100%;
 height: 100%;
 position: absolute;
 }
 </style>
 <script>
 function init() {
 //实例化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: [0, 0],
  zoom: 2
 })

 });
 //实例化ZoomSlider控件并加载到地图容器中
 var zoomslider = new ol.control.ZoomSlider();
 map.addControl(zoomslider);
 //实例化zoomToExent控件并加载到地图容器中
 var zoomToExent = new ol.control.ZoomToExtent({
 extend: [13100000, 4290000,
  13200000, 5210000
 ]
 });
 map.addControl(zoomToExent);
 }
 </script>
</head>

<body onload="init()">
 <div id="map"></div>
</body>

</html>

代码说明:首先实例化控件对象,然后调用Map的addControl方法加载到地图容器即可,代码中的ZoomToExtent控件的extent参数为地图的缩放范围,就是将当前地图缩放到此范围,在视图中会显示此范围。

2.2 修改缩放控件样式

我们可以通过css样式来设置Zoom、ZoomSlider、ZoomToExtent 的样式,调整他在地图中显示的位置。代码如下:

#map .ol-zoom .ol-zoom-out {
 margin-top: 204px;
}

#map .ol-zoomslider {
 background-color: transparent;
 top: 2.3em;
}

#map .ol-touch .ol-zoom .ol-zoom-out {
 margin-top: 212px;
}

#map .ol-touch .ol-zoomslider {
 top: 2.75em;
}

#map .ol-zoom-in.ol-has-tooltip:hover [role=tooltip],
#map .ol-zoom-in.ol-has-tooltip:focus [role=tooltip] {
 top: 3px;
}

#map .ol-zoom-out.ol-has-tooltip:hover [role=tooltip],
#map .ol-zoom-out.ol-has-tooltip:focus [role=tooltip] {
 top: 232px;
}


/*设置缩放控件ZoomToExtent的样式,将其放到导航条下方
 */

#map .ol-zoom-extent {
 top: 280px;
}

实现效果如下

OpenLayers3加载常用控件使用方法详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 两个窗体之间传值实现代码
Sep 25 Javascript
JavaScript中继承的一些示例方法与属性参考
Aug 07 Javascript
Web 前端设计模式--Dom重构 提高显示性能
Oct 22 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
Feb 12 Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 Javascript
js密码强度校验
Nov 10 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
Nov 23 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
vue 打包后的文件部署到express服务器上的方法
Aug 09 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
Jun 04 Javascript
vue+element实现图片上传及裁剪功能
Jun 29 Javascript
详解Js模块化的作用原理和方案
Apr 29 Javascript
在webstorm中配置less的方法详解
Sep 25 #Javascript
OpenLayers加载缩放控件使用方法详解
Sep 25 #Javascript
Javascript confirm多种使用方法解析
Sep 25 #Javascript
OpenLayers3实现地图显示功能
Sep 25 #Javascript
openlayers实现图标拖动获取坐标
Sep 25 #Javascript
openlayers实现地图弹窗
Sep 25 #Javascript
openlayers实现地图测距测面
Sep 25 #Javascript
You might like
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
php数组转成json格式的方法
2015/03/09 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
Layui给switch添加响应事件的例子
2019/09/03 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
在校硕士自我鉴定
2014/01/23 职场文书
求职简历的自我评价
2014/01/31 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
国庆节标语大全
2014/10/08 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
2015年教研工作总结
2015/05/23 职场文书
同学会演讲稿
2019/04/02 职场文书
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python