这些控制器在实现上,并不是在画布上绘制的,而是使用传统的HTML元素来实现的,便于同地图分离,也便于界面实现。

一、All Controllers

OpenLayers 3目前内置的地图控件类都在包ol.control下面,依次有:

  • ol.control.Attribution: 右下角的地图信息控件
  • ol.control.FullScreen: 全屏控件
  • ol.control.MousePosition: 鼠标位置控件
  • ol.control.OverviewMap: 鸟瞰图控件
  • ol.control.Rotate: 指北针控件
  • ol.control.ScaleLine: 比例尺控件
  • ol.control.Zoom: 缩放按钮控件
  • ol.control.ZoomSlider: 缩放滚动条控件
  • ol.control.ZoomToExtent: 放大到设定区域控件

我们可以通过设置值进行选择:

<script type="text/javascript">var map = new ol.Map({// 设置地图控件,默认的三个控件都不显示controls: ol.control.defaults({attribution: true,rotate: false,zoom: false}),layers: [new ol.layer.Tile({source: new ol.source.OSM()})],target: 'map',view: new ol.View({center: ol.proj.transform([104, 30], 'EPSG:4326', 'EPSG:3857'),zoom: 10})});
</script>


把所有的控件都显示出来

<script type="text/javascript">var map2 = new ol.Map({// 在默认控件的基础上,再加上其他内置的控件controls: ol.control.defaults().extend([new ol.control.FullScreen(),new ol.control.MousePosition(),new ol.control.OverviewMap(),new ol.control.ScaleLine(),new ol.control.ZoomSlider(),new ol.control.ZoomToExtent()]),layers: [new ol.layer.Tile({source: new ol.source.OSM()})],target: 'map2',view: new ol.View({center: ol.proj.transform([104, 30], 'EPSG:4326', 'EPSG:3857'),zoom: 10})});
</script>

二、控件原理

我们可以用Chrome浏览器的F12功能查看控件样式源码

我们可以通过更改CSS更改其样式

三、改变控件样式

我们可以在CSS文件中增加这样一段

.ol-zoom .ol-zoom-in {background-color: #0000ff;color: #ff0000;
}

就可以修改我们地图放大按钮的样式了.

其实就是对按钮进行了定位,修改其样式

当我们引入jQuery库后,我们也可以通过JS进行更改

<div id="map2" style="width: 100%"></div>
<script type="text/javascript">new ol.Map({layers: [new ol.layer.Tile({source: new ol.source.OSM()})],target: 'map2',view: new ol.View({center: ol.proj.transform([104, 30], 'EPSG:4326', 'EPSG:3857'),zoom: 10})});// 设置放大按钮符号,下面这个代码需要引入jquery,或者zepto库$('#map2 .ol-zoom-in').html('<>');
</script>

四、自定义控件

<div id="map" style="width: 100%"></div>
<script type="text/javascript">var map = new ol.Map({layers: [new ol.layer.Tile({source: new ol.source.OSM()})],target: 'map',view: new ol.View({center: ol.proj.transform([104, 30], 'EPSG:4326', 'EPSG:3857'),zoom: 10})});// 在viewport节点下添加一个分享按钮var viewport = map.getViewport();$(viewport).append('<div id="share" class="share">分享地图</div>');// 监听按钮点击事件,执行相关操作document.getElementById('share').onclick = function() {alert('分享当前地图给朋友');}
</script>

css

.share {position: absolute;top: 10px;right: 10px;border: 1px;border-color: #333;background-color: #339999;color: #fff;box-shadow: 0px 0px 2px #666;cursor: pointer;padding: 0 4px 0 4px;
}

Openlayer:学习笔记之控件相关推荐

  1. VC学习笔记 -单选按钮控件(Ridio Button)的使用

    在VC++编程过程中,查资料是一个苦差事,案边放了一摞书左翻右翻好是烦人.一赌气就把一些常用的小技巧自己总结了一下,虽费了些功夫,但对以后编程很有好处.现拿出来与大家共享,以后积累多了,作一个CHM电 ...

  2. Asp.net控件开发学习笔记(三)-控件开发基础

    封装      在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件      创建自 ...

  3. IOS开发学习笔记018- 一般控件的使用

    1.移动 2.动画 3.缩放 3.旋转 4.简化代码 5.总结 UIButton 的两种状态 normal highlighted  1.移动 OC语法规定:不允许直接修改某个对象中结构体属性的成员. ...

  4. android菜鸟学习笔记13----Android控件(二) 自定义控件简单示例

    有时候,可能觉得系统提供的控件太丑,就会需要自定义控件来实现自己想要的效果. 以下主要参考<第一行代码> 1.自定义一个标题栏: 系统自带的标题栏很丑,且没什么大的作用,所以我们之前会在o ...

  5. PR学习笔记——效果控件的相关知识

    效果控件 1.一般调节音量 2.左右鼠标一起点击或者alt+鼠标左键 3.钢笔工具是增添关键帧的 4.alt+ctrl 换视频的位置

  6. C#学习笔记:控件BackColor属性与ForeColor的使用方法

    1.解释 (1)BackColor属性 BackColor属性表示控件的背景颜色,各个颜色颜色分量的取值范围是0-255的整数. (2)ForeColor属性 ForeColor属性表示控件的前景色, ...

  7. C#学习笔记:控件的Dock属性使用,工具栏遮挡解决。

    #Dock属性说明 该属性的用途类似于JAVA中的边框布局.绑定区域类似于东西南北中. Top:顶部,将控件绑定到窗体或页面的顶部,控件跟随顶部移动,一般ToolStrip就是这样的模式 Bottom ...

  8. PyQt5学习笔记- PyQt5控件介绍

    PyQt5控件介绍 一.控件的概念 二.控件结构继承图 一.控件的概念 一个程序界面上的各个独立的元素(一块矩形区域) 具备不同的功能:用户点击.接受用户输入.展示内容.存放其他控件 初始常用控件:按 ...

  9. python Tkinter学习笔记 menu控件 02

    2019独角兽企业重金招聘Python工程师标准>>> ''' Created on 2012-9-19@author: liangqianwu''' #_*_ coding:utf ...

  10. 002柿饼派GUI模组学习之AnimatedImage控件调试

    本文声明:本文为个人学习柿饼派显示模组的相关记录与经验. 002柿饼派GUI模组学习之AnimatedImage 控件调试 1.认识AnimatedImage控件   AnimatedImage是动态 ...

最新文章

  1. android小程序备忘录,撸一个会话备忘录的小程序
  2. 古文构词之法、造词之法
  3. 快速幂算法(矩阵快速幂还不是很会。。日后会更新)
  4. perl统计http日志ip
  5. git不能上传空目录和设备文件
  6. 【Git分布式版本控制系统一】你还不会用Git进行项目管理?
  7. web 自动化测试 浏览器及驱动下载地址大全
  8. VC2008+OpenCV2.3.1 的安装配置
  9. 2021小白Python入门学习记录Day3(win10系统、Python3.9、使用Pycharm)python高级数据类型(字符串、列表、元组、字典、集合) 及其操作
  10. QQ号被盗了申诉回来马上又被盗了怎么办
  11. 百度关闭快照删除更新入口
  12. pandas -- 基础操作(六):数据分组及透视表,df.groupby、pd.pivot,、pd.pivot_table、stack(堆叠)、 unstack(不堆叠)
  13. 【转】葡萄酒的干型、半干型、半甜型、甜型是什么意思?
  14. 【课程全解】-UML软件建模设计
  15. Latex 自定义命令与环境、箱子
  16. 4G蓝牙信号(广播包)采集器
  17. 7-32 寻找250 (10分)
  18. 摩托罗拉v8对讲机驱动软件_摩托罗拉A8对讲机_摩托罗拉A8对讲机写频软件2.0 官方中文版-PC下载网...
  19. 阿里新零售又一块试验田!揭秘亲橙里的天猫智慧门店
  20. 嗨嗨嗨,双人模式来咯。

热门文章

  1. linux硬件 软件raid,linux学习之路之磁盘阵列RAID及硬件RAID和软件RAID的区别
  2. html5中的web storage的用法
  3. jquery在选择元素的时候,可以写成var div=$(div)
  4. input或者button type=submit,设置disabled属性后,无法提交代码到后台
  5. 高数测试——3.29
  6. Android 博文
  7. @PostConstruct 注解没有初始化
  8. 课程设计之第二次冲刺----第一天
  9. SQL中CONVERT转化函数的用法(转)
  10. 经典排序算法(二)--桶排序Bucket Sort