Leaflet Event與Layer類屬性 方法

2022-07-09 15:15:13 字數 2697 閱讀 4146

event

之所以要說event,是因為很多類都是繼承自layer——marker、popup、tooltip、path以及繼承自path的circle、polyline、polygon...;而layer又是繼承自event的。追根溯源我們先看event類。

event的作用是當某些事發生在乙個物件上時,執行一些響應函式(比如當使用者點選map時,就在map物件上觸發了'click'事件)。

乙個用例:

map.on('click' function

(e));

leaflet是用引用響應函式名的來處理響應,所以如果想在處理完乙個事件後關閉對該事件的響應,最好不要用匿名函式而採用普通函式的方式:

function

onclick(e)

map.on('click',onclick);

map.off('click',onclick);

這樣,由於用off關閉了對事件click的響應函式onclick,之後再click就不會用onclick函式進行響應了。

1、方法

//

listener——響應函式

on(type, function )//

為事件 type 新增響應函式 function

on(eventmap) //

一系列的type/listener對,例如

off(type,fn?)//

關閉事件 type 上的響應函式 fn;如果省略fn,則會移除所有與該事件type 相關的響應函式。

off(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) //

把該layer加入到map或者layer group中;這個方法很重要

remove() //

從該layer正在活動的map上移除該layer

removefrom(map)//

從指定的map上移除layer(不管該map是不是現在活動的map)

removefrom(group)//

從指定的layergroup上移除layer

//popup方法

//所有的layer物件都實現了一些與popup相關的方法

//乙個用例

var layer = l.polygon(latlng).bindpopup('hi! there!').addto(map);

layer.openpopup();

layer.closepopup();

//此外popups也將在 該圖層被點選時開啟;在該圖層被移除或者另乙個popup開啟時關閉

//popup方法

bindpopup(content , options?)

//為該layer繫結乙個popup,可選引數option和popup初始化時的引數一致

unbindpopup() //

移除繫結在該layer上的popup

openpopup(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。

搜尋專項 LA 5844

一開始用map記錄對映dfs,結果tle了。然後發現第乙個串中只會出現 a z 所以可以以這26個字母用乙個vis記錄該字母是否被對映,再記錄該字母對映下的字串就可以了。include include include using namespace std char s1 20 s2 60 int ...

LA 1453 旋轉卡殼

include using namespace std struct point typedef point vector int cross vector a,vector b vector operator vector a,vector b vector operator point a,po...

la3716( 數學變形)

translation 給出兩條字串a,b。找出一段最長的子區間,使得區間所有位置x,有不超過p 的位置存在a x b x solution 利用數學變形 構造乙個數列,兩字串相等的位置為0,不等的為1。另sum i 為字首和。則就是求 sum e sum s e s 不超過p 的最長長度是多少?n...