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. 【存】008 Linux 文件查找 find

    01 一起来认识 find! 在 Linux 系统,find 毫无疑问是最强的文件查找工具.find 一般会与其他命令结合,将查找到的结果作为参数传入到后置命令中,进行删除.统计.复制迁移等操作. 0 ...

  2. 码风QwQ

    注:卡常.压行时怎么有效怎么来QwQ 快读真香.( 不喜欢用字符数组,使用string. 此时cin cout输入前会加这样三句以优化: ios::sync_with_stdio(0); cin.ti ...

  3. react之每日一更(实现canvas拖拽,增、删、改拖拽模块大小功能)

    效果图: import React, { Component } from 'react'; import scaleImage from './images/scale.png'; import c ...

  4. [POI2009]SLO-Elephants

    首先可以发现我们可以发现最终状态和初始状态都是一个大小为 \(n\) 的排列,且恰好有 \(n\) 种关系,于是我们对于每个 \(a_i\) 连一条 \(a_i \rightarrow b_i\) 的 ...

  5. 【转】C# / Extension 扩展方法

    扩展方法简介扩展方法使你能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调 ...

  6. 原生js获取子元素

    感谢原文作者:归一山人 原文链接:https://www.cnblogs.com/guiyishanren/p/12214757.html 获取子元素的方法有 //获取第一个demo类 dom = d ...

  7. 常用获取inflate的写法

    1.             //context:上下文, resource:要转换成view对象的layout的id, root:将layout用root(ViewGroup)包一层作为codify ...

  8. Yarn命令列表

    常用命令: 创建项目:yarn init 安装依赖包:yarn == yarn install 添加依赖包:yarn add Yarn命令列表 命令 操作 参数 标签 yarn add 添加依赖包 包 ...

  9. 自动归档autoArchive By H.l

    写点简单的代码,让开发更简单 详情:ios 应用实现快速的临时缓存之模型的自动归档 Demo:https://files.cnblogs.com/files/sixindev/AutoArchiver ...

  10. jdk1.5新特性之-----自动装箱与自动拆箱

    import java.util.ArrayList; /* jdk1.5新特性之-----自动装箱与自动拆箱. java是面向对象 的语言,任何事物都可以使用类进行描述,sun就使用了 一些类描述j ...