leaflet源码目录结构及功能介绍

885 阅读1分钟

core 目录

Events.js

// 解析 types,交由内部函数 _on(type, fn, context)去添加事件
on(types, fn, context),
// 解析 types,交由内部函数 _off(type, fn, context)去移除事件
off(types, fn, context)
// 添加事件
_on: function (type, fn, context) {
  this._events = this._events || {}; // this._events 对象初始化
  // 主要步骤
  var newListener = {fn: fn, ctx: context}

  this._events[type].push(newListener)
},
// 移除事件
_off: function (type, fn, context) {
  // 主要步骤: 找到 fn 并移除
  for (i = 0, len = listeners.length; i < len; i++) {
    var l = listeners[i];
    if (l.ctx !== context) { continue; }
    if (l.fn === fn) {
      // ...
      listeners.splice(i, 1);

      return;
    }
  }
},
// 触发指定监听事件
fire: function (type, data, propagate) {
  // 主要步骤
  for (var i = 0, len = listeners.length; i < len; i++) {
    var l = listeners[i];
    l.fn.call(l.ctx || this, event);
  }
  if (propagate) {
    this._propagateEvent(event);
  }
	return this;
},
// 判断指定事件是否挂载监听
listens(type, propagate)
// 添加事件监听,执行一次之后便移除
once(types, fn, context)
// 添加事件父级
addEventParent(obj) 
// 删除事件父级
removeEventParent(obj) 
// 事件传播[触发父级的指定事件监听]
_propagateEvent(e)

dom 目录

实现对dom的操作

geo 目录

针对地理位置点

geometry 目录

针对像素位置点

control 目录

layer 目录

map 目录