Event

之所以要说Event,是因为很多类都是继承自Layer——Marker、Popup、Tooltip、Path以及继承自Path的Circle、Polyline、Polygon...;而Layer又是继承自Event的。追根溯源我们先看Event类。

Event的作用是当某些事发生在一个对象上时,执行一些响应函数(比如当用户点击map时,就在map对象上触发了'click'事件)。

一个用例:

map.on('click' function(e){
alert(e.latlng);
});

Leaflet是用引用响应函数名的来处理响应,所以如果想在处理完一个事件后关闭对该事件的响应,最好不要用匿名函数而采用普通函数的方式:

function onClick(e){...}

map.on('click',onClick);
map.off('click',onClick);

这样,由于用off关闭了对事件click的响应函数onClick,之后再click就不会用onClick函数进行响应了。

1、方法

//Listener——响应函数
on(<String>type, function )//为事件 type 添加响应函数 function
on(<Object> eventMap) //一系列的Type/Listener对,例如{click :onClick , mousemove:onMouseMove}
off(<String>type,<Function>fn?)//关闭事件 type 上的响应函数 fn;如果省略fn,则会移除所有与该事件type 相关的响应函数。
off(<Object>eventMap)//以Type/Listener对 的形式关闭事件Type上的响应函数。
off() //关闭所有事件的所有响应函数

Layer(Event)

Map与Layer的区别:一个系统只能有一个Map,而可以有多个Layer对象,比如TileLayer、Polygon...,这些Layer只有addTo(Map)后才会在Map上显示出来。这里把Map翻译为地图可能有点不太合适,所以就采用英文Map了。

子类包括:Marker、Popup、Tooltip、Path以及继承自Path的Circle、Polyline、Polygon...

一个用例:

var Layer =L.marker(latlng).addTo(map);
layer.addTo(map);
layer.remove();

1、事件

//一般事件
add //当Layer加入到Map中时
remove //当Layer从Map中移除
//Popup事件
popupopen //当与Layer绑定的popup打开时
popupclose //popup关闭时
//Tooltip事件
tooltipopen //与Layer绑定的tooltip打开时
tooltipclose//tooltip关闭时

2、方法

//子类继承的方法
addTo(<Map|LayerGroup>map) //把该Layer加入到Map或者Layer Group中;这个方法很重要
remove() //从该Layer正在活动的Map上移除该Layer
removeFrom(<Map>map)//从指定的map上移除Layer(不管该map是不是现在活动的map)
removeFrom(<LayerGroup> group)//从指定的LayerGroup上移除Layer //Popup方法
//所有的Layer对象都实现了一些与Popup相关的方法
//一个用例
var layer = L.polygon(latlng).bindPopup('Hi! There!').addTo(map);
layer.openPopup();
layer.closePopup();
//此外Popups也将在 该图层被点击时打开;在该图层被移除或者另一个Popup打开时关闭 //Popup方法
bindPopup(<String|HTMLElement|Function|Popup>content , <Popup options>options?)
//为该Layer绑定一个Popup,可选参数option和Popup初始化时的参数一致

unbindPopup() //移除绑定在该Layer上的Popup
openPopup(<LatLng> LatLng? ) //在指定坐标处打开该Popup,如果没有设置,就会在默认的位置打开
closePopup() //关闭该Layer上的Popup(如果该Popup是打开的话)
togglePopup()//打开还是关闭该Layer上的Popup取决于该Layer现在的状态(还没搞懂该函数的意思)
setPopupContent(content)//设置Popup的内容
getPopup()//返回绑定在该Layer上的Popup对象 //Tooltip方法
//与Popup方法完全类似,甚至类似到,你把Popup的方法中的Popup字符替换为Tooltip就变成了了Tooltip方法

需要注意的是,Map上会显示所有openPopup()的Popup。

Leaflet:Event与Layer类属性、方法的更多相关文章

  1. 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

    1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左 ...

  2. Swift枚举|结构体|类|属性|方法|下标脚本|继承

    1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左 ...

  3. Java基础语法04面向对象上-类-属性-方法-可变参数-重载-递归-对象数组

    类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考 ...

  4. python 类属性.方法 实例的基本用法

    class man(): classify = "people"# 全局属性 def __init__(self,name,age,value,):#类方法 self.name = ...

  5. Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法

    From: http://www.cnblogs.com/pengsixiong/p/4823473.html 属性分为实例属性与类属性 方法分为普通方法,类方法,静态方法 一:属性: 尽量把需要用户 ...

  6. python-静态方法staticmethod、类方法classmethod、属性方法property

    Python的方法主要有3个,即静态方法(staticmethod),类方法(classmethod)和实例方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def  ...

  7. Leaflet:Map类属性及方法

    1.初始化 L.map(<String> id , options ?) //用地图div的id创建 L.map(<HTMLElement>el , options?) //用 ...

  8. python 类属性与方法

    Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...

  9. C#可扩展编程之MEF学习笔记(三):导出类的方法和属性

    前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...

随机推荐

  1. 前端基础之CSS(浮动-解决溢出-实现个人头像框)

    目录 一:浮动float 1.什么是浮动? 2.浮动的作用 3.浮动有两个特点 4.float格式 二:代码实现左右浮动边框 三:浮动造成父标签塌陷问题(清除浮动) 1.浮动会造成父标签的影响 三:清 ...

  2. linux用户密码过期导致命令执行失败

    背景介绍: 使用zabbix调用系统命令,检查时间同步,发现一直在报错,root 用户执行无异常,问题还是出现zabbix用户上面. [zabbix@test-10-12 ~]$ sudo ntpda ...

  3. 阅读笔记——长文本匹配《Matching Article Pairs with Graphical Decomposition and Convolutions》

    论文题目:Matching Article Pairs with Graphical Decomposition and Convolutions 发表情况:ACL2019 腾讯PCG小组 模型简介 ...

  4. c++17 新特性

    编译环境说明:gcc 8.1 + eclipse +windows 10 eclipse cpp默认支持c++14,做c++17开发时,需要手动进行配置. 1.关键字 1)constexpr c++1 ...

  5. AtCoder AGC002 简要题解

    从今天开始,联赛之前大约要完成前 \(20\) 套 \(\rm AGC\),希望不要鸽. A 略 B 感觉这题比 \(\rm C\) 题难. 考虑对于每个时刻维护每个位置是否可能出现红球,那么一个时刻 ...

  6. AT2400 [ARC072B] Alice&Brown

    通过打表后可以发现,当初始石头数 \(|X - Y| \le 1\) 时先手必败否则先手必胜. 我们考虑使用归纳证明这个结论,显然 \((1, 0), (1, 1)\) 时是成立的. 基于观察,我们可 ...

  7. SpringBeanUtils的部分方法类

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/12060553.html SpringBeanUtils的部分方法类: import java. ...

  8. MySQL数据类型的最优选择

    MySQL数据类型的最优选择   慎重选择数据类型很重要.为啥哩?可以提高性能.原理如下:            ● 存储(内存.磁盘).从而节省I/O(检索相同数据情况下)      ● 计算.进而 ...

  9. Linux用户配置文件、口令配置文件、组配置文件

    1.用户配置文件:保存用户信息 /etc/passwd 2.口令配置文件 /etc/shadow 每一行解释:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效 ...

  10. unittest基础篇1

    转自http://blog.csdn.net/huilan_same/article/details/52944782 unittest是xUnit系列框架中的一员,如果你了解xUnit的其他成员,那 ...