L.Point
显示以像素为单位的点的x,y坐标。
所以接受点对象的leaflet方法和选项都也接受他们简单数组的形式。
Constructor(函数构造器)
L.Point():用给定点的x和y坐标来创建点对象。如果round设置为true,则将x和y的值转换为圆中。?
Properties(属性)
x:x坐标。
y:y坐标。
Methods(方法)
add():返回当前点和给定点的和。
subtract():返回当前点和给定点的差。
multiplyBy():返回当前点和给定值的积。
divideBy():返回当前点和给定值的商。如果round设置为true,则返回一个圆的结果。
distanceTo():返回当前点与给定的的距离。
clone():返回当前的副本。
round():返回当前的在圆上的坐标的副本。
equals():如果点坐标相同则返回true。
toString():在调试时显示点的字符串的形式。
L.Bounds
用像素坐标表示的矩形的区域。
所以接受边界对象的leaflet方法和选项都也接受他们简单数组的形式。
Constructor(函数构造器)
L.Bounds(左上角点,右下角点):用两个坐标(通常是左上角的点和右下角的点)来创建边界对象。
L.Bounds(点集):用包含的点创建边界对象。
Properties(属性)
min:矩形左上角点。
max:矩形右下角点。
Methods(方法)
extend():将包含给定点的边界延伸。
getCenter():返回边界的中心点。
contains():如果矩形包含给定的边界则返回true。
contains():如果矩形包含给定点则返回true。
intersects():如果矩形与给定边界相交则返回true。
isValid():如果边界可以被初始化则返回true。
getSize():返回边界的大小。
L.Icon
创建注记时显示的图标。
Constructor(函数构造器)
L.Icon():通过给定的选项创建图标实例。
Options(选项)
iconUrl:请求图标图片的URL(脚本中的绝对或相对路径)。
iconRetinaUrl:图标图片视网膜视图下的尺寸的URL。用于视网膜屏幕的设备。
iconSize:图标图片的像素大小。
iconAnchor:图标提示的坐标(在左上角)。图标是对其的,所以这个点是注记的地理位置。如果大小是指定的则位于中心处,也可以在CSS中设置负边界。
shadowUrl:图标阴影图的URL。如果没有指定,图标没有阴影。
shadowRetinaUrl:图标在视网膜视图下的尺寸的URL。如果没有指定,图标没有阴影。用于视网膜屏幕的设备。
shadowAnchor:阴影的提示坐标(在左上角)(如果没有指定则与iconAnchor相同)。
popupAnchor:与图标锚相关的打开弹出框的点的坐标。
className:图标和阴影图片的自定义的类名。默认为空。
L.DivIcon
用div要素而非图片来轻量级地显示注记的图标。
默认情况下,阴影会有一个小的白色的方形作为leaflet-div-icon类和样式。
Constructor(函数构造器)
L.DivIcon():用给定的选项实例化图标。
Options(选项)
iconSize:图标的像素大小。也可以通过CSS设置。
iconAnchor:图标提示的坐标(在左上角)。图标是对其的,所以这个点是注记的地理位置。如果大小是指定的则位于中心处,也可以在CSS中设置负边界。
className:用于对其图标的自定义的类名,默认为leaflet-div-icon。
html:在div要素中自定义的HTML代码,默认为空。
L.Control
所有leaflet控制的基础类。继承自IControl接口。
Constructor(函数构造器)
L.Control():通过给定的选项创建一个控制。
Options(选项)
position:控制初始的位置(在地图的某一角)。参见control positions。
Methods(方法)
setPosition():设置控制的位置。参见control positions。
getPosition0():返回控制的当前位置。
addTo():将控制添加到地图上。
removeFrom():将控制从地图上移除。
Control Positions(控制的位置)
topleft:地图的左上角。
topright:地图的右上角。
bottomleft:地图的左下角。
bottomright:地图的右下角。
L.Control.Zoom
拥有两个按钮(放大和缩小)的级别的缩放控制。默认地图上是有的,除非设置zoomControl选项为false。
Constructor(函数构造器)
L.Control.Zoom():创建缩放控制。
Options(选项)
position:控制的位置(在地图的某一角)。参见control positions。
L.Control.Attribution
可以在地图上一个小的文本盒子中显示属性数据的属性控制。默认地图上是有的,除非设置attributionControl选项为false,并且它自动地通过getAttribution方法获取图层的属性文本。继承自Control。
Constructor(函数构造器)
L.Control.Attribution():创建属性控制。
Options(选项)
position:控制的位置(在地图的某一角)。参见control positions。
prefix:在属性之前显示的HTML文本。传递false来使其不显示。
Methods(方法)
setPrefix():在属性之前设置文本。
addAttribution():添加属性文本。
removeAttribution():移除属性文本。
L.Control.Layers
图层控制使用户可以在不同的底图之间切换,并可以控制覆盖物的开关。继承自Control。
Constructor(函数构造器)
L.Control.Layers():通过给定的图层创建数据控制。基础图层通过单选项进行切换,覆盖物通过复选框切换显示。
Methods(方法)
addBaseLayer():通过给定的控制名称添加基础层(通过单选按钮实体)。
addOverlay():凸显给定的控制名称添加覆盖物(通过复选框实体)。
removeLayer():将图层从控制中移除。
Options(选项)
position:控制的位置(在地图的某一角)。参见control positions。
collapsed:如果为true,控制可以收缩为一个图标,在鼠标置于上方或点触时展开。
autoZIndex:如果为true,控制的图层升序地叠置对齐,在切换图层打开或关闭时,顺便不变。
Events(事件)
baselayerchange:当基层层通过控制更改时触发。
L.Control.Scale
显示在十进制或公制的屏幕当前中心的比例的简单比例尺控制。继承自IControl接口。
Constructor(函数构造器)
L.Control.Scale():通过选项创建比例控制。
Options(选项)
position:控制的位置(在地图的某一角)。参见control positions。
maxWidth:控制最大的像素宽度。宽度可以围绕几个值动态设置。
metric:是否显示十进制比例线。
imperial:是否显示公制比例线。
updateWhenIdle:如果设置为true,控制由moveend更新,否则它总是最新的(由move更新)。
Events methods
一系列事件驱动的类(比如map)之间共享的方法。通常,事件允许你在一个对象发生某些事情时执行一些函数。
leaflet通过引用来处理事件监听器,所以如果你想咬添加或移除一个监听器时,可以用函数的方法。
Methods(方法)
addEventListener(类型,函数,内容):向某一类型的事件中添加监听器函数。你可以选择性地指定监听器的内容(对象中this关键字会被使用)。你也可以传递几个空格间隔的类型(如"click dbclick")。
addEventListener(发生事件的地图,内容):添加一系列的类型/监听器对,如{click:Onclick,mousenove:onMouseMove}
removeEventListener(类型,函数,内容):移除之前添加的监听器函数。如果没有指定具体的函数,则所以的都会被移除。
removeEventListener(发生事件的地图,内容):移除一系列类型/监听器对。
hasEventListener():如果某一事件类型有附属的监听器则返回true。
fireEvent():触发指定类型的事件。你可以提供一个数据对象——监听器对象的第一个参数应该包含它的属性。
on():addEventListener的别称。
off():removeEventListener的别称。
fire():fireEvent()的别称。
Event objects
当一些事件触发时接受监听器函数参数的事件对象,它包含了事件一些有用的信息。
Events(事件)
type:事件的类型。
target:触发事件的对象。
MouseEvent(鼠标事件)
latlng:鼠标事件发生的地理点。
layerPoint:鼠标事件发生的与地图图层相关的点的像素坐标。
containerPoint:鼠标事件发生的与地图容器相关的点的像素坐标。
originalEvent:由浏览器触发的原始的DOM鼠标事件。
LocationEvent(位置事件)
latlng:监测到的用户的地理位置。
bounds:用户坐落的区域的地理边界(考虑位置精度问题)。
accuracy:米为单位的位置的精度。
ErrorEvent(错误事件)
message:错误信息。
code:错误代码(若可用)。
LayerEvent(图层事件)
layer:添加或移除的图层。
TileEvent(切片事件)
tile:切片要素(图片)。
url:切片的url资源。
GeoJSON event(GeoJSON事件)
layer:将要添加到地图上的GeoJSON要素的图层。
properties:要素的GeoJSON的属性。
geometryType:要素的GeoJSON的几何类型。
id:要素的GeoJSON的ID(如果出现)。
Popup event(弹出框事件)
popup:打开或关闭的弹出框。
L.Class
L.Class强化了leaflet的面向对象的设备并被用于创建几乎所哟这里提到的leaflet类。
除了执行一个简单的类接口模型,它还引入了方便代码组织的一下特殊的属性——options,includes和statics。
Inheritance(继承)
可以用L.Class.extend来定义新的类,但可以在任何一个类上用同样的方法来继承它。
这会创建一个继承父类所有方法和属性的类(由规范所约束),添加或重构你用来扩展的类。这也对instanceof做出反应。
你可以通过父类的规范和javascript的call与apply来调用父类的方法来响应子类的方法(就像你在其他语言中调用超类)。
Options(选项)
options是一个与其他对象不同的特殊的属性,其他你用来扩展的对象会被父类合并而非完全重构,这使管理对象的结构和默认值更加方便。
选项中还有L.Util.setOptions方法,可以方便地合并传递给函数构造器的选项和类中默认的定义。
Includes(包含)
includes是一个特殊的类,它将所有对象合并到一个类中。一个较好的例子是L.Mixin.Event,它是具有on、off和fire这些鱼事件相关的方法的类。
Statics(静态)
statics是一种方便的属性,将类中指定对象的属性变为静态属性,对于定义常量比较有用。
Class Factories(类工厂)
你可以用个两种方式来创建leaflet的实例——用new关键字和用小写的factory方法。
Constructor Hooks(构造函数钩子)
如果你是一个插件开发者,你通常需要在现有的类中加入附件的初始化代码(比如因L.Polyline而编辑钩子)。leaflet可以用addInitHook方法来简化它。
L.Browser
leaflet内部监测浏览器或要素的带有属性的命名空间。
ie:如果是IE浏览器则返回true。
ie6:如果是IE6浏览器则返回true。
ie7:如果是IE7浏览器则返回true。
webkit:如果是类似chrome和safari的基于webkit的浏览器(包括移动版)则返回true。
webkit3d:如果基于webkit的浏览器支持CSS的3D转换则返回true。
android:如果是安卓移动版的浏览器则返回true。
android23:如果是安卓2或3的股票浏览器则返回true。
mobile:如果是流行的移动版的浏览器(包括iOS下的safari和其他各种安卓浏览器)则返回true。
mobileWebkit:如果是移动版的基于webkit的浏览器则返回true。
mobileOpera:如果是移动版的opera浏览器则返回true。
touch:对于所有触摸设备上的浏览器返回true。
msTouch:对于微软的触摸模式的浏览器(比如IE10)返回true。
retina:如果是视网膜屏幕的设备则返回true。
L.Util
在leaflet内部使用的多种实用的函数。
Methods(方法)
extend():将src对象(或多个对象)的属性合并到dest对象中并将其返回。具有一个L.extend的快捷方式。
bind():返回由给定范围的obj执行fn函数的函数(所以关键字this可以表示函数代码里的obj)。具有一个L.bind快捷方式。
stamp():在对象上应用一个主键并返回这个键。具有L.stamp快捷方式。
limitExecByInterval():返回调用尽量快的但不会比间隔时间还要频繁的fn函数的包装器(对于拖动地图时检验和请求信的切片比较有用),可以通过context选择函数调用的范围。
falseFn():返回总是返回false的函数。
formatNum():返回digits位数的num的数目。
splitWords():根据空格和空白来截取分割字符串并返回数组。
setOptions():将所给的属性合并到obj的options中,返回最终的选项。参加Class options。具有L.setOptions快捷方式。
getParamString():将对象转换为带有参数的URL字符串,比如{a:"foo",b:"bar"}转换为'?a=foo&b=bar'。
template():是一个简单的模板,用通过将{a:'foo',b:'bar',...}形式的data对象应用到'Hello{a},{b}'形式的模板字符串来创建字符串——在上述示例中可以得到'Hello foo,bar'。
isArray():如果对象为数组则返回true。
Properties(属性)
emptyImageUrl:包含64位编码的空的GIF图像的数据URL字符串。在webkit驱动的移动设备的上,用来作为清空没用图像的存储的钩子。
L.Transformation
表示仿射变换:用一系列a、b、c、d的系数来将(x,y)形式转换为(ax+b,cy+d)的形式并进行反转。在leaflet的投影代码中可以用得到。
Constructor(函数构造器)
L.Transformation():通过给定的系数创建转换对象。
Methods(方法)
transform():返回转换后的点,可以选择扩大一定的倍数。只接受真实的L.Point实例,而不是数组。
untransform():返回反转变换后的点,可以选择搜索一定倍数。只接受真实的L.Point实例,而不是数组。
L.LineUtil
一些处理线段点的应用函数,在leaflet内部用来使线段显示更快。
Methods(方法)
simplify(): 在保持形状的同时动态地减少线上点的数目并返回简化后点的数组。在每一缩放级别处理和显示leaflet线段时可以大幅提升效率并可以减少视觉噪声。 tolerance影像简化的量(较小的值意味着更高的质量,但效率会地因为有更多的点)。这也是微型类库Simplify.js中的一部分。
pointToSegmentDistance():返回点p到p1和p2组成的线段之间的距离。
closesPointOnSegment():返回p1和p2线段上与p点最接近的点。
clipSegment():用矩形边界裁剪点a到点b之间的折线段(直接修改折线段上的点)。在leaflet中用来显示屏幕内或边缘的线段上的点,可以因此而提高效率。
L.PolyUtil
多边形几何体的一些应用函数。
Methods(方法)
clipPolygon():通过矩形边界来裁剪给定点定义的多边形几何体。在leaflet中用来显示屏幕内或边缘的线段上的多边形上的点,可以因此而提高效率。多边形点需要不同的算法来裁剪折线段,因此这个方法也有不同的分支。
L.DomEvent
在leaflet内部用来处理DOM事件的应用函数。
Methods(方法)
addListener():向指定类型的DOM事件元素添加监听器fn。监听器中的this关键字指向context,或是在没有说明的情况下指向要素。
removeListener():在元素中移除事件监听器。
stopPropagation():停止事件向父元素传播。
preventDefault():阻止事件默认的动作发生(比如追踪元素href中的链接,或是当form提交时页面重载的POST请求)。
stop():在同一时刻发起stopPropagation和preventDefault。
disableClickPropagation():将stopPropagation添加到元素的'click','doubleclick','mousedown'和'touchstart'事件中。
getMousePosition():如果没有特意说明则获取与容器或整个页面相关的DOM事件的标准的鼠标位置。
getWheelDelta():从mousewheel的DOM事件中获取标准的滚轮区域。
L.DomUtil
在leaflet内部用来处理DOM树的应用函数。
Methods(方法)
get():如果传递字符串则返回一个带有指定id的元素,或是只是返回这个元素。
getStyle():返回元素中特定样式属性的值,包括计算后的值和CSS中设置的值。
getViewprotOffset():返回请求元素视图的偏移量。
create():通过tagName创建元素,设置className并选择性地将其附加到container元素中。
disableTextSelection():使文本不能被选择,比如拖动的时候。
enableTextSelection():使文本选择重新可用。
hasClass():如果元素类属性包含name则返回true。
addClass():将name添加到元素类的属性中。
removeClass():在元素类属性中移除name。
setOpacity():设置元素的透明度(包括老的IE也支持)。值应当处于0到1之间。
testProp():检索样式名称的数组并返回第一个元素可用样式的名称。如果没有找到,那么返回false。
getTranslateString():返回CSS转换字符串来通过给定点提供的偏移量来移动元素。
getScaleString():返回CSS转换字符串来缩放元素(通过给定的比例原点)。
setPosition():用CSS转换或屏幕左上角位置设置给定点的坐标系下的元素位置(leaflet内在地定位图层)。如果disable3D设置为true那么强制为左上角位置。
getPosition():返回之前用setPosition定位的元素的坐标。
Properties(属性)
TRANSITION:带前缀的转换样式名称(如'webkitTransition'用来表示WebKit)。
TRANSFORM:带前缀的变换样式名称。
L.PosAnimation
在内部用来平移动画镜头,利用CSS3转换在现代浏览器中实现,在IE6到9中用时间降速的功能实现。
Constructor(函数构造器)
L.PosAnimation():创建动画对象。
Methods(方法)
run():在新的位置运行指定元素,可以选择性地设置持续的秒数(默认是0.25秒)和线性效果(通过cubic bezier curve的第三个参数,默认是0.5)。
Events(事件)
start:当动画开始时触发。
step:在动画过程中持续触发。
end:动画结束时触发。
L.Draggable
使DOM元素可以拖动的类。在内部被用来拖动地图和注记。
Constructor(函数构造器)
L.Draggable():创建可拖动对象,这样在你开始移动dragHandle元素时就可以移动给定元素了(默认同元素自身是同一个)。
Events(事件)
dragstart:拖动开始时触发。
predrag:在拖动过程中相应元素位置更新之前持续触发。
drag:拖动过程中持续触发。
dragend:拖动结束后触发。
Methods(方法)
enable():使拖动功能可用。
disable():使拖动功能不可用。
IHandler
继承自interaction handlers接口。
enable():使处理程序可用。
disable():使处理程序不可用。
enabled():如果处理程序可用则返回true。
ILayer
显示地图上附属于某一位置(或一系列位置)的对象。被tile layers,markers,popups,image,overlays,vector layers和layer groups所继承。
Methods(方法)
onAdd():需要包含创建覆盖物的DOM元素的代码,将他们加入到所属的map panes中并在相关地图时间中放入监听器。调用map.addLayer(map)。
onRemove():包含从DOM移除覆盖物元素和移除之前onAdd方法添加的监听器的所有的清除代码。调用map.removeLayer(layer)。
Implementing Custom Layers(实例化自定义图层)
何时实例化自定义图层最重要的是地图的viewset事件和latLngToLayerPoint方法。viewset在地图需要重新定位图层时(比如缩放时)触发,latLngToLayerPoint在获取图层新的位置时使用。
在实例化图层时还有一个经常用到的事件是moveend,在地图移动之后触发(比如平移和缩放等)。
还 有一个需要注意的事情是你需要经常向你在图层中创建的DOM元素中添加leaflet-zoom-hide类,它会在缩放动画中隐藏。实例化自定义图层的 缩放动画师一个复杂的话题,在以后的章节中会讲到,但你可以在leaflet的图层代码(比如ImageOverlay)中看一下它是如何工作的。
IControl
在地图的某个角上显示UI元素。被zoom,attribution,scale和layers controls所继承。
Methods(方法)
onAdd():包含所有用于在相关地图事件上控制、添加监听器的创建必要DOM要素的代码,并返回包含控制的元素。调用map.addControl(control)或control.addTo(map)。
onRemove():包含所有清除代码(比如0移除控制事件监听器)。调用map.removeControl(control)或control.removeFrom(map)。控制的DOM容器自动移除。
IProjection
具有将地理坐标投影到平面(和后方)的方法的对象。参加Map projection。
Methods(方法)
project():将地理坐标投影为二维点。
unproject():将二维的点反投影为地理位置。
Defined Projections(定义的投影)
L.Projection.SphericalMercator:球面墨卡托投影——网上地图最常用的投影,几乎所有的免费和商业的切片提供者都会使用。假设地球是一个规则球体。被EPSG:3857坐标参考系统使用。
L.Projection.Mercator:椭圆墨卡托投影——比球面墨卡托投影更为复杂,这个投影考虑到地球是椭球而非规则球体。在EPSG:3395坐标参考系统中使用。
L.Projection.LonLat:正交矩形或圆柱投影——最简单的投影,几乎只被GIS专家使用。将地图的x方向作为经度,y方向作为纬度。对于平面的世界也适用,比如游戏地图。在EPSG:3395和Simple坐标参考系统中使用。
ICRS
为将地理点投影到像素坐标或屏幕坐标和反向投影(投影到用于WMS服务的其他单位的坐标)而定义坐标参考系统。参加Spatial reference system。
Methods(方法)
latLngToPoint():将给定缩放级别的地理坐标投影为像素坐标。
pointToLatLng():是latLngToPoint的反转。将给定缩放级别的像素坐标投影为地理坐标。
project():将地理坐标投影为CRS可接受单位的坐标(比如EPSG:3857中的米,传递给WMS服务)。
scale():返回转换投影坐标为特定级别的像素坐标所用到的缩放级别。比如,在基于墨卡托投影的CRS中返回256*2^zoom。
Properties(属性)
projection:CRS使用的投影。
transformation:CRS使用的用来将投影坐标转换为特定切片服务的屏幕坐标的转换方式。
code:向WMS服务传递的标准CRS的标准代码名称(比如'EPSG:3857')。
Defined CRS(定义的坐标参考系统)
L.CRS.EPSG3857:在线地图最常用的CRS,几乎所有的免费喝商业切片服务都会使用。使用球面墨卡托投影。是地图的crs选项的开始默认值。
L.CRS.EPSG4326:在GIS专家中常见的CRS。使用简单的圆柱投影。
L.CRS.EPSG3395:较少地被商业切片服务使用。使用椭圆墨卡托投影。
L.CR.Simple:直接将经纬和纬度映射为x和y的简单的CRS。可能会在平面地图中用到(比如游戏地图)。y轴始终是反向的(由下而上)。
如果你想用其他此处未列出的不常用的CRS,请查询Proj4Leaflet插件。
Global Switches
用来在少数情况并且基本都是即使某个特别的浏览器要素存在,也使leaflet不监测的全局设置开关。需要在leaflet包含于页面之前将全局变量开关设置为true。
L_PREFER_CANVAS:对于矢量图层,强制leaflet在后台使用画布而非SVG。这在某些情况下可以适当提高性能(比如在地图上有成千上万的圆注记时)。
L_NO_TOUCH:即使监测到触摸事件,也强制leaflet不去使用触摸事件。
L_DISABLE_3D:即使可用,也强制leaflet在定位时不使用硬件加速来进行CSS 3D变换(在少数情况下会发生偶然故障)。
L.noConflict()
这个方法用来将L全局变量恢复到leaflet包含的初始值,并返回leaflet真实的命名空间,所以你可以将它放到任何地方。
L.version
显示当前使用的leaflet版本的常量。