Leaflet API 翻译(二)

本文深入解析Leaflet API,涵盖L.Point、L.Bounds、L.Icon、L.DivIcon等核心类的构造函数、属性与方法,以及L.Control、L.Event、L.Browser等关键组件的详细说明。了解如何使用这些API来增强地图功能,包括图层控制、缩放控制和自定义事件。
摘要由CSDN通过智能技术生成

摘自:http://www.ithao123.cn/content-824673.html

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版本的常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值