Leaflet:Event与Layer类属性、方法
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类属性、方法的更多相关文章
- 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- Java基础语法04面向对象上-类-属性-方法-可变参数-重载-递归-对象数组
类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考 ...
- python 类属性.方法 实例的基本用法
class man(): classify = "people"# 全局属性 def __init__(self,name,age,value,):#类方法 self.name = ...
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
From: http://www.cnblogs.com/pengsixiong/p/4823473.html 属性分为实例属性与类属性 方法分为普通方法,类方法,静态方法 一:属性: 尽量把需要用户 ...
- 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 ...
- Leaflet:Map类属性及方法
1.初始化 L.map(<String> id , options ?) //用地图div的id创建 L.map(<HTMLElement>el , options?) //用 ...
- python 类属性与方法
Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...
- C#可扩展编程之MEF学习笔记(三):导出类的方法和属性
前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...
随机推荐
- python网络爬虫-静态网页抓取(四)
静态网页抓取 在网站设计中,纯HTML格式的网页通常被称之为静态网页,在网络爬虫中静态网页的数据比较容易抓取,因为说有的数据都呈现在网页的HTML代码中.相对而言使用Ajax动态加载的玩个的数据不一定 ...
- cloudcompare备忘录(1)
1.找点 然后直接在需要的位置上点就会出现这个点的信息了~! 2.想看一个三d的切面时候 先选中切的目标 点击小剪刀~ 点击鼠标左键四次来框选,然后点击鼠标右键确认 再点击这个按钮就切好了
- ApacheCN 计算机视觉译文集 20210203 更新
新增了五个教程: OpenCV3 和 Qt5 计算机视觉 零.前言 一.OpenCV 和 Qt 简介 二.创建我们的第一个 Qt 和 OpenCV 项目 三.创建一个全面的 Qt + OpenCV 项 ...
- Visual Studio 中快速创建方法 Generate a method in Visual Studio
2020-04-04 https://docs.microsoft.com/en-us/visualstudio/ide/reference/generate-method?view=vs-2019 ...
- Win10正式版屏幕一直闪烁怎么办
这个原因是由于两个账户都在线,一个账户更替到另一个账户时出现的 解决办法:先注销一个账户,再登录到另一个账户,即只保持一个账户在线,就不会出现屏幕闪烁的情况.
- C3P0数据库连接池数据库插入中文乱码问题解决
问题描述 近期修改一个学生信息管理的JavaWeb项目,其数据库连接池使用了C3P0.在实际测试时,发现在学生信息模块添加中文学生信息会在数据库(MySQL)出现中文乱码问题. 如图所示: 问题分析 ...
- PTM人员(产品技术经理)
以下是一位PTM的工作总结: 责任感 作为PTM一定要有责任感,项目中的所有事情都要作为自己的事情,如果碰到有些项目中的工作没人负责,那么就是PTM的工作没有做到位. 全局观 作为PTM一定要比普 ...
- node 解决存储xss风险报告
1. 安装 xss模块 npm install xss 2.在 Node.js 中使用 const xss = require("xss"); // 在项目的接口里面添加 let ...
- Lesson12——NumPy 字符串函数之 Part1:字符串操作函数
NumPy 教程目录 1 NumPy 字符串函数 以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作. 它们基于 Python 内 ...
- 关于sys.path.append()
当我们导入一个模块时:import xxx,默认情况下python解析器会搜索当前目录.已安装的内置模块和第三方模块,搜索路径存放在sys模块的path中: >>> import ...