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。
