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 相关文章推荐
document.getElementById为空或不是对象的解决方法
Jan 24 Javascript
js控制页面的全屏展示和退出全屏显示的方法
Mar 10 Javascript
JS实现弹性菜单效果代码
Sep 07 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
JavaScript作用域示例详解
Jul 07 Javascript
AngularJs  Understanding Angular Templates
Sep 02 Javascript
Angular的事件和表单详解
Dec 26 Javascript
详解vue-router基本使用
Apr 18 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
Sep 10 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
在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
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
linux下php上传文件注意事项
2016/06/11 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
vue视频播放暂停代码
2019/11/08 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python代码调试的几种方法总结
2015/04/15 Python
Python入门教程之运算符与控制流
2016/08/17 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Python学习之os模块及用法
2020/06/03 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
泰国网上购物:Shopee泰国
2018/09/14 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
委托证明的格式
2014/01/10 职场文书
致接力运动员广播稿
2014/02/17 职场文书
团支部推优材料
2014/05/21 职场文书
争做文明公民倡议书
2014/08/29 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
工作态度不端正检讨书
2014/10/04 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
公司承诺函范文
2015/01/21 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
python生成随机数、随机字符、随机字符串
2021/04/06 Python