用法示例 示例

// 使用id为map的div容器初始化地图,同时指定地图的中心点和缩放级别
    BM.Config.HTTP_URL = '';
var map = BM.map('map','mapid', {
    center: [51.505, -0.09],
    zoom: 13
});

创建

构造描述
BM.map( <String> id, <String> mapid, <Map options>options?)给定<div>元素的DOM ID 以及可选的对象文字的实例化地图对象Map options
BM.map( <HTMLElement> el, <String> mapid, <Map options>options?)给定<div>HTML元素实例和可选的对象文字实例化地图对象Map options

选项

配置类型默认描述
preferCanvasBooleanfalse是否Path应在渲染Canvas器上渲染s 。默认情况下,所有Paths都在SVG渲染器中呈现。

控制选项

配置类型默认描述
attributionControlBooleantrue默认情况下是否将归因控件添加到地图中。
zoomControlBooleantrue默认情况下是否将缩放控件添加到地图中。

交互选项

配置类型默认描述
closePopupOnClickBooleantruefalse如果您不希望在用户单击地图时关闭弹出窗口,请将其设置为。
zoomSnapNumber1强制地图的缩放级别始终为此的倍数,尤其是在fitBounds()缩放或缩放后。默认情况下,缩放级别会捕捉到最接近的整数; 较低的值(例如0.50.1)允许更大的粒度。值0 表示缩放后的缩放级别fitBounds或者缩放缩放。
zoomDeltaNumber1控制地图的缩放级别多少后改变 zoomIn()zoomOut(),压制+ 或-在键盘上,或者使用缩放控件。小于1(例如0.5)的值允许更大的粒度。
trackResizeBooleantrue地图是否自动处理浏览器窗口调整大小以更新自身。
boxZoomBooleantrue是否可以在按住Shift键的同时通过拖动鼠标将地图缩放到指定的矩形区域。
doubleClickZoomBoolean|Stringtrue是否可以通过双击放大地图并通过双击同时按住缩放来缩小地图。如果通过 'center',双击缩放将缩放到视图的中心,无论鼠标位于何处。
draggingBooleantrue是否可以使用鼠标/触摸拖动地图。

映射状态选项

配置类型默认描述
crsCRSBM.CRS.EPSG3857要使用的坐标参考系统。如果您不确定这意味着什么,请不要更改此项。
centerLatLngundefined地图的初始地理中心
zoomNumberundefined初始地图缩放级别
minZoomNumber*地图的最小缩放级别。如果未指定且至少有一个GridLayerTileLayer在地图中,minZoom则将使用其中最低的选项。
maxZoomNumber*地图的最大缩放级别。如果未指定且至少有一个GridLayerTileLayer在地图中,maxZoom则将使用其中最高的选项。
layersLayer[][]最初将添加到地图的图层数组
maxBoundsLatLngBoundsnull设置此选项后,地图会将视图限制为给定的地理边界,如果用户尝试在视图外平移,则会将用户反弹回来。要动态设置限制,请使用 setMaxBounds方法。
rendererRenderer*在地图上绘制矢量图层的默认方法。BM.SVG 或BM.Canvas默认情况下取决于浏览器支持。

动画选项

配置类型默认描述
zoomAnimationBooleantrue是否启用地图缩放动画。默认情况下,除了Android之外,所有支持CSS3过渡的浏览器都启用了它。
zoomAnimationThresholdNumber4如果缩放差异超过此值,则不会设置缩放动画。
fadeAnimationBooleantrue是否启用了平铺淡入淡出动画。默认情况下,除了Android之外,所有支持CSS3过渡的浏览器都启用了它。
markerZoomAnimationBooleantrue标记是否使用缩放动画为其缩放设置动画,如果禁用,它们将在动画的长度内消失。默认情况下,除了Android之外,所有支持CSS3过渡的浏览器都启用了它。
transform3DLimitNumber2^23定义CSS转换变换的最大大小。除非Web浏览器在执行大型操作后将图层放在错误的位置,否则不应更改默认值panBy

平移惯性选项

配置类型默认描述
inertiaBoolean*如果启用,则平移地图将具有惯性效果,其中地图在拖动时构建动量并且继续在相同方向上移动一段时间。在触摸设备上感觉特别好。除非在旧的Android设备上运行,否则默认启用。
inertiaDecelerationNumber3000惯性运动减速的速率,以像素/秒为单位。
inertiaMaxSpeedNumberInfinity惯性运动的最大速度,以像素/秒为单位。
easeLinearityNumber0.2 
worldCopyJumpBooleanfalse启用此选项后,地图会跟踪您平移到世界的另一个“副本”并无缝跳转到原始地图,以便所有叠加层(如标记和矢量图层)仍然可见。
maxBoundsViscosityNumber0.0如果maxBounds设置,则此选项将控制拖动地图时边界的实体程度。默认值0.0允许用户以正常速度拖动边界外,较高的值将减慢地图拖动外部边界,1.0并使边界完全固定,防止用户拖出边界外。

键盘导航选项

配置类型默认描述
keyboardBooleantrue使地图可聚焦,并允许用户使用键盘箭头和+-键导航地图。
keyboardPanDeltaNumber80按箭头键时平移的像素数量。

鼠标滚轮选项

配置类型默认描述
scrollWheelZoomBoolean|Stringtrue是否可以使用鼠标滚轮缩放地图。如果通过'center',它将缩放到视图的中心,无论鼠标在哪里。
wheelDebounceTimeNumber40限制车轮可以发射的速率(以毫秒为单位)。默认情况下,用户不能每40毫秒更频繁地通过滚轮进行缩放。
wheelPxPerZoomLevelNumber60多少个滚动像素(由BM.DomEvent.getWheelDelta报告)表示更改一个完整缩放级别。较小的值将使轮缩放更快(反之亦然)。

触摸互动选项

配置类型默认描述
tapBooleantrue支持移动黑客支持即时点击(在iOS / Android上修复200毫秒点击延迟)和触摸保持(触发contextmenu事件)。
tapToleranceNumber15用户在触摸期间可以移动手指的最大像素数,以将其视为有效的抽头。
touchZoomBoolean|String*是否可以通过用两个手指触摸拖动来缩放地图。如果通过'center',它将缩放到视图的中心,无论触摸事件(手指)在哪里。支持具有触摸功能的Web浏览器,但旧的Androids除外。
bounceAtZoomLimitsBooleantrue如果您不希望地图缩放超过最小/最大缩放,然后在缩放缩放时反弹,则将其设置为false。

活动

图层事件

事件数据描述
baselayerchange LayersControlEvent通过图层控件更改基础图层时触发。
overlayadd LayersControlEvent通过图层控件选择叠加层时触发。
overlayremove LayersControlEvent通过图层控件取消选择叠加层时触发。
layeradd LayerEvent将新图层添加到地图时触发。
layerremove LayerEvent从地图中删除某个图层时触发

映射状态更改事件

事件数据描述
zoomlevelschangeEvent由于添加或删除图层而改变地图上的缩放级别数时触发。
resize ResizeEvent调整地图大小时触发。
unload Event使用remove方法销毁地图时触发。
viewreset Event当地图需要重绘其内容时触发(这通常发生在地图缩放或加载)。对于创建自定义叠加层非常有用。
load Event初始化地图时(第一次设置中心和缩放时)触发。
zoomstart Event当地图缩放即将改变时触发(例如在缩放动画之前)。
movestart Event在地图视图开始更改时触发(例如,用户开始拖动地图)。
zoom Event在缩放级别的任何变化期间反复触发,包括缩放和飞行动画。
move Event在地图的任何移动过程中反复发射,包括平移和飞行动画。
zoomend Event在地图发生变化后,在任何动画之后触发。
moveend Event当地图中心停止变化时触发(例如,用户停止拖动地图)。

弹出事件

事件数据描述
popupopen PopupEvent在地图中打开弹出窗口时触发
popupclose PopupEvent关闭地图中的弹出窗口时触发
autopanstart Event打开弹出窗口时地图开始自动平移时触发。

工具提示事件

事件数据描述
tooltipopen TooltipEvent在地图中打开工具提示时触发。
tooltipclose TooltipEvent关闭地图中的工具提示时触发。

位置活动

事件数据描述
locationerror ErrorEvent地理定位(使用该locate方法)失败时触发。
locationfound LocationEvent地理定位(使用locate方法)成功时触发。

互动活动

事件数据描述
click MouseEvent用户单击(或点击)地图时触发。
dblclick MouseEvent当用户双击(或双击)地图时触发。
mousedown MouseEvent当用户在地图上按下鼠标按钮时触发。
mouseup MouseEvent当用户在地图上释放鼠标按钮时触发。
mouseover MouseEvent鼠标进入地图时触发。
mouseout MouseEvent鼠标离开地图时触发。
mousemove MouseEvent鼠标在地图上移动时触发。
contextmenuMouseEvent当用户在地图上按下鼠标右键时触发,防止默认浏览器上下文菜单显示此事件是否有侦听器。当用户持续一次触摸(也称为长按)时,也会在手机上触发。
keypress KeyboardEvent当用户在聚焦地图时从键盘按下键时触发。
preclick MouseEvent鼠标在地图上单击之前触发(有时在任何现有点击处理程序开始运行之前需要点击某些内容时有用)。

其他方法

事件数据描述
zoomanim ZoomAnimEvent在缩放动画的每一帧上都会被触发

方法

方法返回描述
getRenderer( <Path>layer)Renderer

返回Renderer应该用于呈现给定 的实例Path。它将确保renderer地图和路径的选项得到遵守,并且渲染器确实存在于地图上。

层和控件方法

方法返回描述
addControl( <Controlcontrol)this

添加控件至地图视图

removeControl( <Controlcontrol)this

移除控件

addLayer( <Layerlayer)this

添加层至地图视图

removeLayer( <Layerlayer)this

移除层

hasLayer( <Layerlayer)Boolean

查询是否有指定的层

eachLayer( <Function> fn, <Object> context?)this

迭代映射的层,可选地指定迭代器函数的上下文。

map.eachLayer(function(layer){
    layer.bindPopup('Hello');
});
openPopup( <Popuppopup)this

关闭先前打开时打开指定的弹出窗口(以确保一次只能打开一个以获得可用性)。

openPopup( <String|HTMLElement> content, <LatLnglatlng,<Popup optionsoptions?)this

创建具有指定内容和选项的弹出窗口,并在地图上的给定点中打开它。

closePopup( <Popuppopup?)this

关闭先前使用openPopup(或给定的)打开的弹出窗口。

openTooltip( <Tooltiptooltip)this

打开指定的工具提示。

openTooltip( <String|HTMLElement> content, <LatLnglatlng,<Tooltip optionsoptions?)this

创建具有指定内容和选项的工具提示并将其打开。

closeTooltip( <Tooltiptooltip?)this

关闭作为参数给出的工具提示。

地图状态修改

方法返回描述
setView( <LatLng>center, <Number> zoom,<Zoom/pan options>options?)this

设置地图位置(地理位置和缩放级别))

setZoom( <Number> zoom,<Zoom/pan options>options?)this

设置缩放级别

zoomIn( <Number> delta?,<Zoom optionsoptions?)this

通过deltazoomDelta默认情况下)增加地图的缩放比例。

zoomOut( <Number>delta?, <Zoom options>options?)this

通过deltazoomDelta默认情况下)减小地图的缩放比例。

setZoomAround( <LatLng>latlng, <Number> zoom,<Zoom optionsoptions)this

缩放地图,同时使地图上的指定地理点保持静止(例如,在内部用于滚动缩放和双击缩放)。

setZoomAround( <Point>offset, <Number> zoom,<Zoom optionsoptions)this

放大地图,同时保持地图上的指定像素(相对于左上角)静止不动。

fitBounds(<LatLngBoundsbounds,<fitBounds options>options?)this

限定地图可移动区域

fitWorld(<fitBounds options>options?)this

设置一个地图视图,该视图主要包含可能具有最大缩放级别的整个世界。

panTo( <LatLnglatlng,<Pan optionsoptions?)this

移动地图到新的中心点

panBy( <Pointoffset,<Pan optionsoptions?)this

按给定数量的像素(动画)平移地图。

flyTo( <LatLnglatlng,<Number> zoom?,<Zoom/pan options>options?)this

移动至新的位置(中心和缩放)

flyToBounds(<LatLngBoundsbounds,<fitBounds options>options?)this

平滑移动值新的位置,, flyTo但是接受一个类似于的边界参数fitBounds

setMaxBounds( <Bounds>bounds)this

将地图视图限制为给定边界(请参阅maxBounds选项)。

setMinZoom( <Number>zoom)this

设置最小可用缩放级别(参照minZoom配置)

setMaxZoom( <Number>zoom)this

设置最大可用缩放级别(参照maxZoom配置)

panInsideBounds(<LatLngBoundsbounds,<Pan optionsoptions?)this

将地图平移到位于给定边界内的最近视图(如果它还没有),使用特定选项(如果有)控制动画。

invalidateSize(<Zoom/pan options>options)this

检查地图容器大小是否更改并更新地图(如果是这样) - 在动态更改地图大小后调用它,默认情况下也为动画设置动画。如果options.panfalse,则不会发生平移。如果options.debounceMoveendtrue,它将延迟moveend事件,以便即使连续多次调用该方法也不会经常发生。

invalidateSize(<Boolean> animate)this

检查地图容器大小是否更改并更新地图(如果是这样) - 在动态更改地图大小后调用它,默认情况下也为动画设置动画。

stop()this

停止当前运行的动画(panToflyTo

地理定位方法

方法返回描述
locate(<Locate options>options?)this

尝试使用Geolocation API定位用户,触发包含locationfound 成功位置数据或locationerror失败事件的事件,并可选择将地图视图设置为用户关于检测准确性的位置(如果地理位置失败,则设置为世界视图)。请注意,如果您的网页未使用HTTPS,则此方法将在现代浏览器中失败(Chrome 50及更高版本)有关Locate options详细信息,请参阅。

stopLocate()this

停止观看之前发起的位置map.locate({watch: true}) ,如果调用了map.locate,则中止重置地图视图{setView: true}

其它方法

方法返回描述
addHandler( <String> name,<Function> HandlerClass)this

Handler在给定其名称和构造函数的情况下,向地图添加新内容。

remove()this

销毁地图并清楚所有相关的事件监听器。

createPane( <String> name,<HTMLElement> container?)HTMLElement

如果已存在,则创建具有给定名称的新地图窗格,然后返回该窗格container如果未设置,窗格将创建为主地图窗格的子窗口或子窗口。

getPane( <String|HTMLElement>pane)HTMLElement

给出其名称或其HTML元素(其标识)的地图窗格

getPanes()Object

返回一个普通对象,其中包含所有窗格的名称作为键,窗格作为值。

getContainer()HTMLElement

返回包含地图的HTML元素。

whenReady( <Function> fn,<Object> context?)this

fn使用视图(中心和缩放)和至少一个图层初始化地图时运行给定函数,或者如果已经初始化,则立即运行给定函数,可选地传递函数上下文。

获取地图状态方法

方法返回描述
getCenter()LatLng

获取当前中心点

getZoom()Number

获取当前缩放级别

getBounds()LatLngBounds

获取当前视图可见边界

getMinZoom()Number

获取当前最小缩放级别(如果在minZoom地图或任何图层的选项中设置),或0默认情况下。

getMaxZoom()Number

获取当前最大缩放级别(如果在maxZoom地图或任何图层的选项中设置)。

getBoundsZoom( <LatLngBounds>bounds, <Boolean> inside?)Number

返回给定边界完全适合地图视图的最大缩放级别。如果inside(可选)设置为true,则该方法将返回地图视图完全适合给定边界的最小缩放级别。

getSize()Point

获取当前容器大小(px单位)

getPixelBounds()Bounds

返回投影像素坐标中当前地图视图的边界(有时在图层和叠加层实现中很有用)。

getPixelOrigin()Point

返回地图图层左上角点的投影像素坐标(在自定义图层和叠加层实现中很有用)。

getPixelWorldBounds( <Number>zoom?)Bounds

返回缩放级别的像素坐标中的世界边界zoom。如果zoom省略,则使用地图的当前缩放级别。

转换方法

方法返回描述
getZoomScale( <Number>toZoom, <Number> fromZoom)Number

返回要应用于从缩放级别fromZoom到的地图过渡的比例因子 toZoom。内部用于帮助缩放动画。

getScaleZoom( <Number>scale, <Number> fromZoom)Number

返回地图最终的缩放级别,如果它处于fromZoom 等级并且所有内容都按比例缩放scale。逆的 getZoomScale

project( <LatLnglatlng,<Number> zoom)Point

项目的地理坐标LatLng根据地图的CRS的投影,则根据其刻度zoom和CRS的Transformation。结果是相对于CRS原点的像素坐标。

unproject( <Pointpoint,<Number> zoom)LatLng

逆的project

layerPointToLatLng( <Point>point)LatLng

给定相对于原点像素的像素坐标,返回相应的地理坐标(对于当前缩放级别)。

latLngToLayerPoint(<LatLnglatlng)Point

给定地理坐标,返回相对于原始像素的对应像素坐标。

wrapLatLng( <LatLng>latlng)LatLng

如果它们在CRS的边界之外,则返回一个LatLngwhere lat并且lng已根据地图的CRS wrapLatwrapLng属性进行包装。默认情况下,这意味着经度缠绕在日期线上,因此其值介于-180和+180度之间。

wrapLatLngBounds(<LatLngBoundsbounds)LatLngBounds

返回LatLngBounds与给定大小相同的大小,确保其中心位于CRS的边界内。默认情况下,这意味着中心经度围绕日期线缠绕,因此其值介于-180和+180度之间,并且大多数边界与CRS的边界重叠。

distance( <LatLnglatlng1,<LatLnglatlng2)Number

根据地图的CRS返回两个地理坐标之间的距离。默认情况下,它以米为单位测量距离

containerPointToLayerPoint(<Pointpoint)Point

给定相对于地图容器的像素坐标,返回相对于原始像素的对应像素坐标。

layerPointToContainerPoint(<Pointpoint)Point

给定相对于原始像素的像素坐标,返回相对于地图容器的对应像素坐标。

containerPointToLatLng(<Pointpoint)LatLng

给定相对于地图容器的像素坐标,返回相应的地理坐标(对于当前缩放级别)。

latLngToContainerPoint(<LatLnglatlng)Point

给定地理坐标,返回相对于地图容器的对应像素坐标。

mouseEventToContainerPoint(<MouseEventev)Point

给定MouseEvent对象,返回相对于发生事件的地图容器的像素坐标。

mouseEventToLayerPoint(<MouseEventev)Point

给定MouseEvent对象,返回相对于发生事件的原点像素的像素坐标。

mouseEventToLatLng(<MouseEventev)LatLng

给定MouseEvent对象,返回事件发生的地理坐标。

▶从Evented继承的方法

属性

处理程序

属性类型描述
boxZoom Handler框(用鼠标移动拖动)缩放处理程序。
doubleClickZoom Handler双击缩放处理程序。
dragging Handler映射拖动处理程序(通过鼠标和触摸)。
keyboard Handler键盘导航处理程序
scrollWheelZoom Handler滚轮变焦处理程序。
tap Handler移动触摸黑客(快速点击和触摸保持)处理程序。
touchZoom Handler触摸变焦处理程序

地图窗格

窗格是用于控制地图上图层排序的DOM元素。您可以使用map.getPane或 map.getPanes方法访问窗格。可以使用该map.createPane方法创建新窗格。每个地图都有以下默认窗格,这些窗格仅在zIndex中有所不同。

窗格类型Z-指数描述
mapPaneHTMLElement'auto'包含所有其他地图窗格的窗格
tilePaneHTMLElement200适用于GridLayers和TileLayers的窗格
overlayPaneHTMLElement400矢量窗格(Paths,Polylines和Polygons),ImageOverlays和VideoOverlays
shadowPaneHTMLElement500叠加阴影的窗格(例如Marker阴影)
markerPaneHTMLElement600窗格IconMarker小号
tooltipPaneHTMLElement650Pane for Tooltips。
popupPaneHTMLElement700Pane for Popups。

找到选项

一些地理位置方法Map在取options参数。这是一个普通的javascript对象,包含以下可选组件:

配置类型默认描述
watchBooleanfalse如果true,使用W3C watchPosition方法开始连续观察位置变化(而不是检测一次)。您可以稍后停止使用map.stopLocate()方法观看 。
setViewBooleanfalse如果true,根据检测准确性自动将地图视图设置为用户位置,或者如果地理位置失败则自动将地图视图设置为世界视图。
maxZoomNumberInfinity使用setView选项时自动视图设置的最大缩放。
timeoutNumber10000在触发locationerror事件之前等待地理定位响应的毫秒数 。
maximumAgeNumber0检测到的位置的最大年龄。如果小于自上次地理位置响应以来经过的毫秒数,locate则将返回缓存位置。
enableHighAccuracyBooleanfalse实现高精度,请参阅W3C规范中的说明

缩放选项

Map修改缩放级别的一些方法采用options 参数。这是一个普通的javascript对象,包含以下可选组件:

配置类型默认描述
animateBoolean 如果未指定,如果缩放原点位于当前视图内,则会发生缩放动画。如果true,地图将尝试动画缩放,而忽略缩放原点的位置。设置false将使其始终在没有动画的情况下完全重置视图。

平移选项

Map修改地图中心的一些方法采用options 参数。这是一个普通的javascript对象,包含以下可选组件:

配置类型默认描述
animateBoolean 如果true,如果可能的话,平移将始终是动画。如果false,它不会动画平移,如果平移超过屏幕,则重置地图视图,或者仅为地图窗格设置新的偏移(除了panBy 后者总是如此)。
durationNumber0.25动画平移的持续时间,以秒为单位。
easeLinearityNumber0.25平移动画缓动的曲率因子(Cubic Bezier曲线的第三个参数 )。1.0表示线性动画,数字越小,曲线越弯曲。
noMoveStartBooleanfalse如果true,平移不会movestart在启动时触发事件(内部用于平移惯性)。

缩放/平移选项

▶从缩放选项继承的选项

▶从Pan选项继承的选项

FitBounds选项

配置类型默认描述
paddingTopLeftPoint[0, 0]设置在将视图设置为适合边界时不应考虑的地图容器左上角的填充量。如果您在地图上有一些控件叠加层(如侧边栏)并且您不希望它们遮挡您要缩放的对象,则非常有用。
paddingBottomRightPoint[0, 0]地图右下角也是如此。
paddingPoint[0, 0]相当于将左上角和右下角填充设置为相同的值。
maxZoomNumbernull要使用的最大缩放比例。

▶从缩放选项继承的选项

▶从Pan选项继承的选项

标记

BM.Marker用于在地图上显示可点击/可拖动的图标。延伸Layer

用法示例

BM.marker([50.5, 30.5]).addTo(map);

创建

构造描述
BM.marker( <LatLnglatlng, <Marker optionsoptions?)给定地理点和可选的选项对象实例化Marker对象。

选项

配置类型默认描述
iconIcon*用于渲染标记的图标实例。有关如何自定义标记图标的详细信息,请参阅图标文档。如果未指定,BM.Icon.Default则使用公共实例。
draggableBooleanfalse标记是否可以通过鼠标/触摸进行拖动。
autoPanBooleanfalsetrue如果您希望地图在标记到达边缘时执行平移动画,请将其设置为。
autoPanPaddingPointPoint(50, 50)相当于将左上角和右下角的autopan填充设置为相同的值。
autoPanSpeedNumber10地图应移动的像素数。
keyboardBooleantrue是否可以使用键盘选中标记,然后按Enter键单击。
titleString''标记悬停时显示的浏览器工具提示的文本(默认情况下不是工具提示)。
altString''alt图标图像属性的文本(对辅助功能非常有用)。
zIndexOffsetNumber0默认情况下,标记图像zIndex会根据其纬度自动设置。如果要将标记放在所有其他标记(或下方)之上,请指定高值1000(或分别为高负值),请使用此选项。
opacityNumber1.0标记的不透明度。
riseOnHoverBooleanfalse如果true,当您将鼠标悬停在其上时,标记将会显示在其他标记之上。
riseOffsetNumber250用于该riseOnHover功能的z-index偏移量。
paneString'markerPane'Map pane 将添加标记图标的位置。
bubblingMouseEventsBooleanfalse何时true,此标记上的鼠标事件将在地图上触发相同的事件(除非BM.DomEvent.stopPropagation使用)。

▶从交互层继承的选项

▶继承自Layer的选项

活动

除了共享层的方法addTo(),并remove()弹出方法等bindPopup()也可以使用以下方法:

事件数据描述
move EventsetLatLng通过拖动移动标记时触发。新旧坐标包含在事件参数中oldLatLng,如latlng

拖动事件

事件数据描述
dragstart Event用户开始拖动标记时触发。
movestart Event标记开始移动时触发(因为拖动)。
drag Event用户拖动标记时反复触发。
dragend DragEndEvent用户停止拖动标记时触发。
moveend Event当标记停止移动(因拖动)时触发。

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
toGeoJSON()Object

返回一个 GeoJSON标记的表示(作为GeoJSON Point特征)。

getLatLng()LatLng

返回标记的当前地理位置。

setLatLng( <LatLnglatlng)this

将标记位置更改为给定点。

setZIndexOffset( <Number> offset)this

更改标记的zIndex偏移量

setIcon( <Iconicon)this

更改标记图标。

setOpacity( <Number> opacity)this

更改标记的不透明度。

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

属性

交互处理程序

交互处理程序是标记实例的属性,允许您在运行时控制交互行为,启用或禁用某些功能,如拖动(请参阅Handler方法)。例:

marker.dragging.disable();
属性类型描述
draggingHandler标记拖动处理程序(通过鼠标和触摸)。仅在标记位于地图上时有效(否则设置marker.options.draggable)。

用于在地图的某些位置打开弹出窗口。使用Map.openPopup打开弹出窗口,同时确保一次只打开一个弹出窗口(建议用于可用性),或使用Map.addLayer打开任意数量的弹出窗口。

如果你想将弹出窗口绑定到标记点击然后打开它,那很简单:

marker.bindPopup(popupContent).openPopup();

折线之类的路径叠加也有一个bindPopup方法。这是在地图上打开弹出窗口的更复杂方法:

var popup = BM.popup()
    .setLatLng(latlng)
    .setContent('<p>Hello world!<br />This is a nice popup.</p>')
    .openOn(map);
构造描述
配置类型默认描述

▶继承自DivOverlay的选项

▶继承自Layer的选项

活动

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法返回描述

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

提示

用于在地图图层上显示小文本。

用法示例

marker.bindTooltip("my tooltip text").openTooltip();

关于工具提示偏移的注意事项。

  • offset工具提示选项:它默认为[0,0],这是特定于一个工具提示。添加正x偏移以将工具提示向右移动,并使用正y偏移将其移动到底部。负数将移至左侧和顶部。
  • tooltipAnchor图标选项:这只会被视为标记。如果使用自定义图标,则应调整此值。

创建

构造描述
BM.tooltip( <Tooltip options>options?, <Layersource?)实例化一个Tooltip对象,给定一个options描述其外观和位置的可选source对象,以及一个可选对象,用于标记工具提示,并引用它引用的Layer。

选项

配置类型默认描述
paneString'tooltipPane'Map pane 将添加工具提示的位置。
offsetPointPoint(0, 0)工具提示位置的可选偏移量。
directionString'auto'方向在哪里打开工具提示。可能的值有:rightleft, topbottomcenterauto。 auto将之间进行动态切换rightleft根据地图上的工具提示位置。
permanentBooleanfalse是永久打开工具提示还是仅在鼠标悬停时打开工具提示。
stickyBooleanfalse如果为true,则工具提示将跟随鼠标而不是固定在要素中心。
interactiveBooleanfalse如果为true,则工具提示将侦听要素事件。
opacityNumber0.9工具提示容器不透明度。

▶继承自DivOverlay的选项

▶继承自Layer的选项

活动

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

TileLayer

用于在地图上加载和显示切片图层。延伸GridLayer

用法示例

BM.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar'}).addTo(map);

网址模板

以下形式的字符串:

'http://{s}.somedomain.com/blabla/{z}/{x}/{y}{r}.png'

{s}装置可用的子域中的一个(顺序地用于帮助每个域限制浏览器并行请求;子域值在选项中指定; abc通过默认,可省略),{z}-缩放级别,{x}以及{y}-瓷砖坐标。{r}可用于将“@ 2x”添加到URL以加载视网膜图块。您可以在模板中使用自定义键,这些键将从TileLayer选项中进行评估,如下所示:

BM.tileLayer('http://{s}.somedomain.com/{foo}/{z}/{x}/{y}.png', {foo: 'bar'});

创建

扩展方法

构造描述
BM.tilelayer( <String> urlTemplate, <TileLayer options>options?)在给定a URL template和可选的options对象的情况下实例化tile图层对象。

选项

配置类型默认描述
minZoomNumber0显示此图层的最小缩放级别(包括)。
maxZoomNumber18此图层将显示的最大缩放级别(包括)。
subdomainsString|String[]'abc'磁贴服务的子域。可以以一个字符串(每个字母是子域名)或字符串数​​组的形式传递。
errorTileUrlString''要显示的图块图像的URL,以代替无法加载的图块。
zoomOffsetNumber0平铺URL中使用的缩放编号将使用此值进行偏移。
tmsBooleanfalse如果true,反转瓷砖的Y轴编号(为TMS服务启用此功能)。
zoomReverseBooleanfalse如果设置为true,则平铺URL中使用的缩放编号将反转(maxZoom - zoom而不是zoom
detectRetinaBooleanfalse如果true和用户在视网膜显示器上,它将要求四个指定尺寸的一半的瓷砖和一个更大的缩放级别来代替一个以利用高分辨率。
crossOriginBooleanfalse如果为true,则所有切片的crossOrigin属性都将设置为''。如果要访问切片像素数据,则需要这样做。

▶继承自GridLayer的选项

▶继承自Layer的选项

活动

▶从GridLayer继承的事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
setUrl( <String> url,<Boolean> noRedraw?)this

更新图层的URL模板并重新绘制它(除非noRedraw设置为true)。

createTile( <Object> coords,<Function> done?)HTMLElement

仅在内部调用,覆盖GridLayer createTile() 以返回具有<img>给定的适当图像URL 的HTML元素coords。将done 在分片已经加载回调被调用。

扩展方法

图层扩展TileLayer可能会重新实现以下方法。

方法返回描述
getTileUrl( <Object>coords)String

仅在内部调用,返回给定其坐标的tile的URL。扩展类TileLayer可以覆盖此函数以提供自定义切片URL命名方案。

▶从GridLayer继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

用于在地图上将WMS服务显示为切片图层。延伸TileLayer

用法示例

var nexrad = BM.tileLayer.wms("http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi", {
    layers: 'nexrad-n0r-900913',
    format: 'image/png',
    transparent: true,
    attribution: "Weather data © 2012 IEM Nexrad"
});

创建

构造描述
BM.tileLayer.wms( <String> baseUrl, <TileLayer.WMS options>options)给定WMS服务的基本URL和WMS参数/选项对象,实例化WMS切片层对象。

选项

如果使用此处未记录的任何自定义选项,它们将作为每个请求URL中的额外参数发送到WMS服务器。这对于非标准供应商WMS参数非常有用 。

配置类型默认描述
layersString''(必需)要显示的以逗号分隔的WMS图层列表。
stylesString''以逗号分隔的WMS样式列表。
formatString'image/jpeg'WMS图像格式('image/png'用于具有透明度的图层)。
transparentBooleanfalse如果true,WMS服务将返回具有透明度的图像。
versionString'1.1.1'要使用的WMS服务的版本
crsCRSnull坐标参考系统用于WMS请求,默认为映射CRS。如果您不确定这意味着什么,请不要更改此项。
uppercaseBooleanfalse如果true,WMS请求参数键将为大写。

▶继承自TileLayer的选项

▶继承自GridLayer的选项

▶继承自Layer的选项

活动

▶从GridLayer继承的事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
setParams( <Object> params, <Boolean>noRedraw?)this

使用新参数合并对象并在当前屏幕上重新请求切片(除非noRedraw设置为true)。

▶从TileLayer继承的方法

▶从GridLayer继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

ImageOverlay

用于在地图的特定边界上加载和显示单个图像。延伸Layer

用法示例

var imageUrl = 'http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg',
    imageBounds = [[40.712216, -74.22655], [40.773941, -74.12544]];
BM.imageOverlay(imageUrl, imageBounds).addTo(map);

创建

构造描述
BM.imageOverlay( <String> imageUrl, <LatLngBoundsbounds,<ImageOverlay optionsoptions?)给定图像的URL及其所绑定的地理边界,以实例化图像叠加对象。

选项

配置类型默认描述
opacityNumber1.0图像叠加层的不透明度。
altString''alt图像属性的文本(对辅助功能非常有用)。
interactiveBooleanfalse如果true,图像叠加将在单击或悬停时发出鼠标事件
crossOriginBooleanfalse如果为true,则图像的crossOrigin属性设置为''。如果要访问图像像素数据,则需要这样做。
errorOverlayUrlString''显示覆盖图像的URL,代替无法加载的叠加层。
zIndexNumber1切片图层的显式zIndex
classNameString''要分配给图像的自定义类名。默认为空。

▶从交互层继承的选项

▶继承自Layer的选项

活动

事件数据描述
load EventImageOverlay图层加载其图像时触发
error EventImageOverlay图层加载其图像时触发

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
setOpacity( <Number> opacity)this

设置叠加层的不透明度。

bringToFront()this

将图层置于所有叠加层的顶部。

bringToBack()this

将图层置于所有叠加层的底部。

setUrl( <String> url)this

更改图像的URL。

setBounds( <LatLngBoundsbounds)this

更新此ImageOverlay所涵盖的边界更改图像叠加层的zIndex

getBounds()LatLngBounds

获取此ImageOverlay涵盖的范围

getElement()HTMLElement

返回HTMLImageElement 此叠加层使用的实例。

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

VideoOverlay

用于在地图的特定边界上加载和显示视频播放器。延伸ImageOverlay。视频叠加层使用<video> HTML5元素。

用法示例

var videoUrl = 'https://www.mapbox.com/bites/00188/patricia_nasa.webm',
    videoBounds = [[ 32, -130], [ 13, -100]];
BM.VideoOverlay(videoUrl, videoBounds ).addTo(map);

创建

构造描述
BM.videoOverlay( <String|Array|HTMLVideoElement> video, <LatLngBounds>bounds, <VideoOverlay optionsoptions?)给定视频的URL(或URL数组,甚至视频元素)及其所绑定的地理边界,以实例化图像叠加对象。

选项

配置类型默认描述
autoplayBooleantrue视频是否在加载时自动开始播放。
loopBooleantrue视频是否会在播放时循环回到开头。

▶继承自ImageOverlay的选项

▶从交互层继承的选项

▶继承自Layer的选项

活动

事件数据描述
load Event视频加载完第一帧后触发

▶从ImageOverlay继承的事件

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
getElement()HTMLVideoElement

返回HTMLVideoElement 此叠加层使用的实例。

▶从ImageOverlay继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

路径

一个抽象类,包含矢量叠加(Polygon,Polyline,Circle)之间共享的选项和常量。不要直接使用它。延伸Layer

选项

配置类型默认描述
strokeBooleantrue是否沿路径绘制笔划。将其设置false为禁用多边形或圆形的边框。
colorString'#3388ff'中风颜色
weightNumber3笔画宽度(以像素为单位)
opacityNumber1.0中风不透明度
lineCapString'round'一个字符串,用于定义要在笔划结束使用的形状
lineJoinString'round'一个字符串,用于定义要在笔触的角使用的形状
dashArrayStringnull用于定义笔触虚线图案的字符串。Canvas某些旧浏览器中不适用于动态图层。
dashOffsetStringnull一个字符串,用于定义到破折号模式距离以启动破折号Canvas某些旧浏览器中不适用于动态图层。
fillBooleandepends是否用颜色填充路径。将其设置false为禁用填充多边形或圆形。
fillColorString*填色。默认为color选项的值
fillOpacityNumber0.2填充不透明度。
fillRuleString'evenodd'一个字符串,用于定义如何确定形状的内部
bubblingMouseEventsBooleantrue何时true,此路径上的鼠标事件将在地图上触发相同的事件(除非BM.DomEvent.stopPropagation使用)。
rendererRenderer 将此特定实例Renderer用于此路径。优先于地图的默认渲染器
classNameStringnull在元素上设置自定义类名。仅适用于SVG渲染器。

▶从交互层继承的选项

▶继承自Layer的选项

活动

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
redraw()this

重绘图层。更改路径使用的坐标后,有时很有用。

setStyle( <Path optionsstyle)this

根据Path options对象中的选项更改Path的外观。

bringToFront()this

将图层置于所有路径图层的顶部。

bringToBack()this

将图层置于所有路径图层的底部。

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

折线

用于在地图上绘制折线叠加层的类。延伸Path

用法示例

// create a red polyline from an array of LatLng points
var latlngs = [
    [45.51, -122.68],
    [37.77, -122.43],
    [34.04, -118.2]
];
var polyline = BM.polyline(latlngs, {color: 'red'}).addTo(map);
// zoom the map to the polyline
map.fitBounds(polyline.getBounds());

您还可以传递多维数组来表示MultiPolyline形状:

// create a red polyline from an array of arrays of LatLng points
var latlngs = [
    [[45.51, -122.68],
     [37.77, -122.43],
     [34.04, -118.2]],
    [[40.78, -73.91],
     [41.83, -87.62],
     [32.76, -96.72]]
];

创建

构造描述
BM.polyline( <LatLng[]> latlngs,<Polyline optionsoptions?)在给定地理点数组和可选的选项对象的情况下实例化折线对象。您可以通过传递地理点数组的数组来创建Polyline具有多个单独行(MultiPolyline)的对象。

选项

配置类型默认描述
smoothFactorNumber1.0在每个缩放级别上简化折线的程度。更多意味着更好的性能和更流畅的外观,更少意味着更准确的表示。
noClipBooleanfalse禁用折线剪裁。

▶继承自Path的选项

▶从交互层继承的选项

▶继承自Layer的选项

活动

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
toGeoJSON()Object

返回一个 GeoJSON折线的表示(作为GeoJSON LineStringMultiLineString特征)。

getLatLngs()LatLng[]

返回路径中的点数组,或者在多折线的情况下返回嵌套的点数组。

setLatLngs(<LatLng[]> latlngs)this

用给定的地理点数组替换折线中的所有点。

isEmpty()Boolean

true如果折线没有LatLng,则返回。

closestLayerPoint()Point

返回最接近p折线的点。

getCenter()LatLng

返回折线的中心(质心)。

getBounds()LatLngBounds

返回LatLngBounds路径。

addLatLng( <LatLng>latlng)this

将一个给定点添加到折线。默认情况下,在多折线的情况下添加到折线的第一个环,但可以通过将特定环作为LatLng数组(您可以在之前访问getLatLngs)来覆盖。

▶从Path继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

多边形

用于在地图上绘制多边形叠加层的类。延伸Polyline。请注意,创建多边形时传递的点不应该具有等于第一个点的额外最后一个点 - 最好过滤掉这些点。

用法示例

// create a red polygon from an array of LatLng points
var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];
var polygon = BM.polygon(latlngs, {color: 'red'}).addTo(map);
// zoom the map to the polygon
map.fitBounds(polygon.getBounds());

您还可以传递一系列latlngs数组,第一个数组表示外部形状,另一个数组表示外部形状中的孔:

var latlngs = [
  [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring
  [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole
];

此外,您可以传递多维数组以表示MultiPolygon形状。

var latlngs = [
  [ // first polygon
    [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring
    [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole
  ],
  [ // second polygon
    [[41, -111.03],[45, -111.04],[45, -104.05],[41, -104.05]]
  ]
];

创建

构造描述
BM.polygon( <LatLng[]> latlngs, <Polyline optionsoptions?) 

选项

▶从Polyline继承的选项

▶继承自Path的选项

▶从交互层继承的选项

▶继承自Layer的选项

活动

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
toGeoJSON()Object

返回一个 GeoJSON多边形的表示(作为GeoJSON PolygonMultiPolygonFeature)。

▶从Polyline继承的方法

▶从Path继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

长方形

用于在地图上绘制矩形叠加层的类。延伸Polygon

用法示例

// define rectangle geographical bounds
var bounds = [[54.559322, -5.767822], [56.1210604, -3.021240]];
// create an orange rectangle
BM.rectangle(bounds, {color: "#ff7800", weight: 1}).addTo(map);
// zoom the map to the rectangle bounds
map.fitBounds(bounds);

创建

构造描述
BM.rectangle( <LatLngBoundslatLngBounds, <Polyline optionsoptions?) 

选项

▶从Polyline继承的选项

▶继承自Path的选项

▶从交互层继承的选项

▶继承自Layer的选项

活动

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
setBounds( <LatLngBoundslatLngBounds)this

使用传递的边界重绘矩形。

▶从Polygon继承的方法

▶从Polyline继承的方法

▶从Path继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

用于在地图上绘制圆形叠加层的类。延伸CircleMarker。这是一个近似值,并开始偏离靠近极点的真实圆(由于投影失真)。

用法示例

BM.circle([50.5, 30.5], {radius: 200}).addTo(map);

创建

构造描述
BM.circle( <LatLnglatlng, <Circle optionsoptions?)实例化给定地理点的圆对象,以及包含圆半径的选项对象。
BM.circle( <LatLnglatlng, <Number> radius, <Circle options>options?)实例化圆圈的过时方式,与0.7.x代码兼容。不要在新的应用程序或插件中使用。

选项

配置类型默认描述
radiusNumber 圆的半径,以米为单位。

▶继承自Path的选项

▶从交互层继承的选项

▶继承自Layer的选项

活动

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
setRadius( <Number> radius)this

设置圆的半径。单位是米。

getRadius()Number

返回圆的当前半径。单位是米。

getBounds()LatLngBounds

返回LatLngBounds路径。

▶继承自CircleMarker的方法

▶从Path继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

CircleMarker

一个固定大小的圆,半径以像素为单位指定。延伸Path

创建

构造描述
BM.circleMarker( <LatLnglatlng, <CircleMarker optionsoptions?)给定地理点的实例化圆形标记对象,以及可选的选项对象。

选项

配置类型默认描述
radiusNumber10圆形标记的半径,以像素为单位

▶继承自Path的选项

▶从交互层继承的选项

▶继承自Layer的选项

活动

▶从交互层继承的鼠标事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
toGeoJSON()Object

返回一个 GeoJSON圆形标记的表示(作为GeoJSON Point特征)。

setLatLng( <LatLnglatLng)this

将圆圈标记的位置设置为新位置。

getLatLng()LatLng

返回圆标记的当前地理位置

setRadius( <Number> radius)this

设置圆圈标记的半径。单位为像素。

getRadius()Number

返回圆的当前半径

▶从Path继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

SVG

虽然在IE7和IE8上没有SVG,但这些浏览器支持VML,在这种情况下SVG渲染器将回退到VML。VML在2012年已弃用,这意味着VML功能仅用于向后兼容旧版Internet Explorer。

允许使用SVG显示矢量图层。继承Renderer。由于技术限制,SVG并非在所有Web浏览器中都可用,特别是Android 2.x和3.x. 虽然在IE7和IE8上没有SVG,但这些浏览器支持 VML (现已弃用的技术),在这种情况下SVG渲染器将回退到VML。

用法示例

默认情况下,对地图中的所有路径使用SVG:

var map = BM.map('map', {
    renderer: BM.svg()
});

使用具有额外填充的SVG渲染器来处理特定的矢量几何:

var map = BM.map('map');
var myRenderer = BM.svg({ padding: 0.5 });
var line = BM.polyline( coordinates, { renderer: myRenderer } );
var circle = BM.circle( center, { renderer: myRenderer } );

创建

构造描述
BM.svg( <Renderer optionsoptions?)使用给定选项创建SVG渲染器。

选项

▶继承自Renderer的选项

▶继承自Layer的选项

活动

▶从Renderer继承的事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

功能

有几个静态函数可以在不实例化BM.SVG的情况下调用:

功能返回描述
create( <String> name)SVGElement返回SVGElement的实例,对应于传递的类名。例如,使用'line'将返回SVGLineElement的实例。
pointsToPath( <Point[]> rings, <Boolean>closed)String为多个环生成SVG路径字符串,每个环变为“M..BM..L ..”指令

帆布

允许使用矢量图层显示<canvas>。继承Renderer。由于技术限制,Canvas并非在所有Web浏览器中都可用,尤其是IE8,并且在某些边缘情况下,重叠几何可能无法正确显示。

用法示例

默认情况下,对地图中的所有路径使用Canvas:

var map = BM.map('map', {
    renderer: BM.canvas()
});

对于特定的矢量几何,请使用Canvas渲染器和额外的填充:

var map = BM.map('map');
var myRenderer = BM.canvas({ padding: 0.5 });
var line = BM.polyline( coordinates, { renderer: myRenderer } );
var circle = BM.circle( center, { renderer: myRenderer } );

创建

构造描述
BM.canvas( <Renderer optionsoptions?)使用给定选项创建Canvas渲染器。

选项

▶继承自Renderer的选项

▶继承自Layer的选项

活动

▶从Renderer继承的事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

图层组

用于将多个图层分组并将其作为一个图层处理。如果将其添加到地图中,则还会在地图上添加/删除从组中添加或删除的任何图层。延伸Layer

用法示例

BM.layerGroup([marker1, marker2])
    .addLayer(polyline)
    .addTo(map);

创建

构造描述
BM.layerGroup( <Layer[]> layers?, <Object> options?)创建一个图层组,可选地给出一组初始图层和一个options对象。

选项

▶继承自Layer的选项

活动

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
toGeoJSON()Object

返回一个 GeoJSON层组的表示(作为以GeoJSON FeatureCollectionGeometryCollectionMultiPoint)。

addLayer( <Layerlayer)this

将给定图层添加到组中。

removeLayer( <Layerlayer)this

从组中删除给定的图层。

removeLayer( <Number> id)this

从组中删除具有给定内部ID的图层。

hasLayer( <Layerlayer)Boolean

返回true如果给定的层,目前添加到该组。

hasLayer( <Number> id)Boolean

返回true如果给定的内部ID目前添加到该组。

clearLayers()this

从组中删除所有图层。

invoke( <String> methodName)this

调用methodName此组中包含的每个层,传递任何其他参数。如果包含的图层未实现,则无效methodName

eachLayer( <Function> fn, <Object>context?)this

迭代组的层,可选地指定迭代器函数的上下文。

group.eachLayer(function (layer) {
    layer.bindPopup('Hello');
});
getLayer( <Number> id)Layer

返回具有给定内部ID的图层。

getLayers()Layer[]

返回添加到组中的所有图层的数组。

setZIndex( <Number> zIndex)this

调用setZIndex该组中包含的每个层,传递z-index。

getLayerId( <Layerlayer)Number

返回图层的内部ID

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

FeatureGroup

扩展LayerGroup使得更容易对其所有成员层执行相同的操作:

  • bindPopup一次将弹出窗口绑定到所有图层(同样如此bindTooltip
  • 事件传播到FeatureGroup,因此如果组具有事件处理程序,它将处理来自任何层的事件。这包括鼠标事件和自定义事件。
  • layeraddlayerremove事件

用法示例

BM.featureGroup([marker1, marker2, polyline])
    .bindPopup('Hello world!')
    .on('click', function() { alert('Clicked on a member of the group!'); })
    .addTo(map);

创建

构造描述
BM.featureGroup( <Layer[]> layers)创建一个要素组,可选择为其提供一组初始图层。

选项

▶继承自Layer的选项

活动

事件数据描述
layeradd LayerEvent将图层添加到此时触发 FeatureGroup
layerremove LayerEvent从此处移除图层时触发 FeatureGroup

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
setStyle( <Path optionsstyle)this

将给定路径选项设置为具有setStyle方法的组的每个层。

bringToFront()this

将图层组置于所有其他图层的顶部

bringToBack()this

将图层组带到所有其他图层的背面

getBounds()LatLngBounds

返回要素组的LatLngBounds(根据其子项的边界和坐标创建)。

▶从LayerGroup继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

以GeoJSON

表示GeoJSON对象或GeoJSON对象的数组。允许您解析GeoJSON数据并将其显示在地图上。延伸FeatureGroup

用法示例

BM.geoJSON(data, {
    style: function (feature) {
        return {color: feature.properties.color};
    }
}).bindPopup(function (layer) {
    return layer.feature.properties.description;
}).addTo(map);

创建

构造描述
BM.geoJSON( <Object> geojson?,<GeoJSON optionsoptions?)创建GeoJSON图层。(可选)接受GeoJSON格式的对象以 在地图上显示(您可以稍后使用addData方法添加它)和options对象。

选项

配置类型默认描述
pointToLayerFunction*一个Function定义点如何以GeoJSON产卵单张层。添加数据时会在内部调用它,并传递GeoJSON点功能及其功能LatLng。默认是生成默认值Marker
function(geoJsonPoint, latlng) {
    return BM.marker(latlng);
}
styleFunction*Function限定Path options用于造型以GeoJSON线和多边形,在添加数据时内部调用。默认值是不覆盖任何默认值:
function (geoJsonFeature) {
    return {}
}
onEachFeatureFunction*一个Function创建的每个将被调用一次Feature被创建和风格后,。用于将事件和弹出窗口附加到要素。默认情况下,对新创建的图层不执行任何操作:
function (feature, layer) {}
filterFunction*Function将用于决定是否包含功能的A. 默认设置包括所有功能:
function (geoJsonFeature) {
    return true;
}

注意:动态更改filter选项仅对新添加的数据有效。它不会重新评估已包含的功能。

coordsToLatLngFunction*Function用于将GeoJSON坐标转换为LatLngs的A. 默认值是coordsToLatLng静态方法。

▶继承自Layer的选项

活动

▶从FeatureGroup继承的事件

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
addData(data)this

将GeoJSON对象添加到图层。

resetStyle(layer)this

将给定矢量图层的样式重置为原始GeoJSON样式,对于悬停事件后重置样式非常有用。

setStyle(style)this

使用给定的样式函数更改GeoJSON矢量图层的样式。

▶从FeatureGroup继承的方法

▶从LayerGroup继承的方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

功能

有几个静态函数可以在不实例化BM.GeoJSON的情况下调用:

功能返回描述
geometryToLayer( <Object> featureData,<GeoJSON optionsoptions?)LayerLayer从给定的GeoJSON功能创建一个。 如果作为选项提供,可以使用自定义pointToLayer和/或coordsToLatLng功能。
coordsToLatLng( <Array> coords)LatLngLatLng从GeoJSON中用于点的2个数字(经度,纬度)或3个数字(经度,纬度,高度)的数组创建对象。
coordsToLatLngs( <Array> coords,<Number> levelsDeep?, <Function>coordsToLatLng?)ArrayLatLng从GeoJSON坐标数组创建s 的多维数组。 levelsDeep指定嵌套级别(0表示点数组,1表示点数组数组,等等,默认为0)。可以使用自定义coordsToLatLng功能。
latLngToCoords( <LatLnglatlng,<Number> precision?)Array逆转 coordsToLatLng
latLngsToCoords( <Array> latlngs,<Number> levelsDeep?, <Boolean> closed?)Array反向确定是否应将第一个点附加到数组的末尾以关闭该要素,仅在为0 时使用。默认为False。coordsToLatLngs closedlevelsDeep
asFeature( <Object> geojson)Object将GeoJSON几何/特征规范化为GeoJSON特征。

GridLayer

用于处理HTML元素的平铺网格的通用类。这是所有切片图层和替换的基类TileLayer.Canvas。GridLayer可以扩展为创建一个HTML元素的平铺网格,如<canvas><img><div>。GridLayer将为您处理创建和动画这些DOM元素。

用法示例

同步使用

要创建自定义层,延长GridLayer和实施createTile()方法,这将传递一个Point对象和xyz(缩放级别)坐标绘制的瓷砖。

var CanvasLayer = BM.GridLayer.extend({
    createTile: function(coords){
        // create a <canvas> element for drawing
        var tile = BM.DomUtil.create('canvas', bm-tile');
        // setup tile width and height according to the options
        var size = this.getTileSize();
        tile.width = size.x;
        tile.height = size.y;
        // get a canvas context and draw something on it using coords.x, coords.y and coords.z
        var ctx = tile.getContext('2d');
        // return the tile so it can be rendered on screen
        return tile;
    }
});

异步使用

平铺创建也可以是异步的,这在使用第三方绘图库时很有用。图块完成绘制后,可以将其传递给done()回调。

var CanvasLayer = BM.GridLayer.extend({
    createTile: function(coords, done){
        var error;
        // create a <canvas> element for drawing
        var tile = BM.DomUtil.create('canvas', bm-tile');
        // setup tile width and height according to the options
        var size = this.getTileSize();
        tile.width = size.x;
        tile.height = size.y;
        // draw something asynchronously and pass the tile to the done() callback
        setTimeout(function() {
            done(error, tile);
        }, 1000);
        return tile;
    }
});

创建

构造描述
BM.gridLayer( <GridLayer optionsoptions?)使用提供的选项创建GridLayer的新实例。

选项

配置类型默认描述
tileSizeNumber|Point256网格中瓷砖的宽度和高度。如果宽度和高度相等,则使用数字,BM.point(width, height)否则。
opacityNumber1.0瓷砖的不透明度。可以在createTile()函数中使用。
updateWhenIdleBoolean(depends)仅在平移结束时加载新图块。 true默认情况下在移动浏览器上,以避免过多请求并保持平滑导航。 false否则,为了平移期间显示新的图块,因为keepBuffer在桌面浏览器中很容易在该选项之外平移 。
updateWhenZoomingBooleantrue默认情况下,平滑缩放动画(在触摸缩放期间或a flyTo())将每个整数缩放级别更新网格图层。将此选项设置为false仅在平滑动画结束时才更新网格图层。
updateIntervalNumber200updateInterval平移时,平铺每毫秒不会更新一次。
zIndexNumber1切片图层的显式zIndex。
boundsLatLngBoundsundefined如果设置,则仅将瓷砖加载到集合中LatLngBounds
minZoomNumber0显示此图层的最小缩放级别(包括)。
maxZoomNumberundefined此图层将显示的最大缩放级别(包括)。
maxNativeZoomNumberundefined磁贴源可用的最大缩放数。如果指定,则所有缩放级别以上的图块maxNativeZoom将从maxNativeZoom级别加载并自动缩放。
minNativeZoomNumberundefined磁贴源可用的最小缩放编号。如果指定,则所有缩放级别以下的图块minNativeZoom将从minNativeZoom级别加载并自动缩放。
noWrapBooleanfalse该层是否包裹在antimeridian周围。如果true,GridLayer只会以低缩放级别显示一次。当地图CRS没有环绕时没有效果。可与之配合使用bounds 防止请求超出CRS限制的磁贴。
paneString'tilePane'Map pane 将添加网格图层的位置。
classNameString''要分配给切片图层的自定义类名。默认为空。
keepBufferNumber2平移地图时,请在卸载之前保留此许多行和列的切片。

▶继承自Layer的选项

活动

事件数据描述
loading Event网格图层开始加载图块时触发。
tileunload TileEvent在移除瓷砖时触发(例如,当瓷砖离开屏幕时)。
tileloadstart TileEvent请求磁贴并在开始加载时触发。
tileerror TileErrorEvent加载磁贴时出错。
tileload TileEvent当瓷砖加载时触发。
load Event当网格图层加载所有可见的图块时触发。

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

方法返回描述
bringToFront()this

将切片图层置于所有切片图层的顶部。

bringToBack()this

将切片图层置于所有切片图层的底部。

getContainer()HTMLElement

返回包含此图层的切片的HTML元素。

setOpacity( <Number> opacity)this

更改网格图层的不透明度

setZIndex( <Number> zIndex)this

更改网格图层的zIndex

isLoading()Boolean

返回true如果在网格层有块尚未加载完毕。

redraw()this

使图层清除所有图块并再次请求它们。

getTileSize()Point

tileSize选项规范化为一个点。由createTile()方法使用。

扩展方法

延伸层GridLayer应重新实施以下方法。

方法返回描述
createTile( <Object>coords, <Function> done?)HTMLElement

仅在内部调用,必须由扩展的类重写GridLayer。返回HTMLElement给定的对应项coords。如果done指定了回调,则必须在切片完成加载和绘制时调用它。

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

经纬度

表示具有一定纬度和经度的地理点。

用法示例

var latlng = BM.latLng(50.5, 30.5);

接受LatLng对象的所bm方法也以简单的Array形式和简单的对象形式接受它们(除非另有说明),因此这些行是等效的:

map.panTo([50, 30]);
map.panTo({lon: 30, lat: 50});
map.panTo({lat: 50, lng: 30});
map.panTo(BM.latLng(50, 30));

请注意,LatLng不会从BM的Class对象继承,这意味着新类不能从它继承,并且无法使用该include函数向其添加新方法。

创建

构造描述
BM.latLng( <Number> latitude, <Number> longitude,<Number> altitude?)创建表示具有给定纬度和经度(以及可选的高度)的地理点的对象。
BM.latLng( <Array> coords)期待一个表格[Number, Number][Number, Number, Number]相反的数组。
BM.latLng( <Object> coords)期待表格的简单对象{lat: Number, lng: Number}{lat: Number, lng: Number, alt: Number}替代。

方法

方法返回描述
equals( <LatLngotherLatLng,<Number> maxMargin?)Boolean

返回true如果给定的LatLng点是在相同的位置(错误的小幅度的范围内)。设置maxMargin为较小的数字可以覆盖误差范围。

toString()String

返回该点的字符串表示形式(用于调试目的)。

distanceTo( <LatLngotherLatLng)Number

返回LatLng使用球面余弦定律计算的给定距离(以米为单位)。

wrap()LatLng

返回LatLng包装经度的新对象,使其始终介于-180和+180度之间。

toBounds( <Number> sizeInMeters)LatLngBounds

返回一个新LatLngBounds对象,其中每个边界与sizeInMeters/2米相距几米LatLng

属性

属性类型描述
lat Number纬度度
lng Number经度度
alt Number海拔高度(米)(可选)

的LatLngBounds

表示地图上的矩形地理区域。

用法示例

var corner1 = BM.latLng(40.712, -74.227),
corner2 = BM.latLng(40.774, -74.125),
bounds = BM.latLngBounds(corner1, corner2);

接受LatLngBounds对象的所bm方法也以简单的Array形式接受它们(除非另有说明),因此上面的bounds示例可以像这样传递:

map.fitBounds([
    [40.712, -74.227],
    [40.774, -74.125]
]);

注意:如果区域穿过反射(通常与国际日期线混淆),则必须指定[-180,180]度经度范围之外的角。请注意,LatLngBounds不会从BM的Class对象继承,这意味着新类不能从它继承,并且无法使用该include函数向其添加新方法。

创建

构造描述
BM.latLngBounds( <LatLngcorner1, <LatLng>corner2)LatLngBounds通过定义矩形的两个对角相对的角来创建对象。
BM.latLngBounds( <LatLng[]> latlngs)创建LatLngBounds由其包含的地理点定义的对象。对于缩放地图以适合特定的一组位置非常有用fitBounds

方法

方法返回描述
extend( <LatLnglatlng)this

扩展边界以包含给定点

extend( <LatLngBounds>otherBounds)this

扩展边界以包含给定的边界

pad( <Number> bufferRatio)LatLngBounds

返回通过在每个方向上按给定比率扩展或缩回当前边界而创建的边界。例如,0.5的比率在每个方向上将边界扩展50%。负值将收回边界。

getCenter()LatLng

返回边界的中心点。

getSouthWest()LatLng

返回边界的西南点。

getNorthEast()LatLng

返回边界的东北点。

getNorthWest()LatLng

返回边界的西北点。

getSouthEast()LatLng

返回边界的东南点。

getWest()Number

返回边界的西经度

getSouth()Number

返回边界的南纬

getEast()Number

返回边界的东经度

getNorth()Number

返回边界的北纬

contains( <LatLngBounds>otherBounds)Boolean

true如果矩形包含给定的矩形,则返回。

contains( <LatLnglatlng)Boolean

true如果矩形包含给定点,则返回。

intersects( <LatLngBounds>otherBounds)Boolean

true如果矩形与给定边界相交,则返回。如果两个边界至少有一个共同点,则两个边界相交。

overlaps( <BoundsotherBounds)Boolean

true如果矩形与给定边界重叠,则返回。如果它们的交点是一个区域,则两个边界重叠。

toBBoxString()String

返回带有'southwest_lng,southwest_lat,northeast_lng,northeast_lat'格式的边界框坐标的字符串。用于向返回地理数据的Web服务发送请求。

equals( <LatLngBounds>otherBounds, <Number> maxMargin?)Boolean

返回true如果矩形相当于(误差的小幅度内)到给定的界限。设置maxMargin为较小的数字可以覆盖误差范围。

isValid()Boolean

true如果正确初始化边界,则返回。

表示带有xy以像素为单位的坐标的点。

用法示例

var point = BM.point(200, 300);

接受Point对象的所bm方法和选项也以简单的Array形式接受它们(除非另有说明),因此这些行是等效的:

map.panBy([200, 300]);
map.panBy(BM.point(200, 300));

请注意,Point不会从BM的Class对象继承,这意味着新类不能从它继承,并且无法使用该include函数向其添加新方法。

创建

构造描述
BM.point( <Number> x, <Number> y, <Boolean>round?)使用给定xy坐标创建Point对象。如果optional round设置为true,则舍入xy值。
BM.point( <Number[]> coords)期待一个表格的数组[x, y]
BM.point( <Object> coords)期待表格的普通对象{x: Number, y: Number}

方法

方法返回描述
clone()Point

返回当前点的副本。

add( <PointotherPoint)Point

返回当前和给定点的相加结果。

subtract( <Point>otherPoint)Point

返回从当前减去给定点的结果。

divideBy( <Number> num)Point

返回当前点除以给定数字的结果。

multiplyBy( <Number> num)Point

返回当前点乘以给定数字的结果。

scaleBy( <Pointscale)Point

将当前点的每个坐标乘以每个坐标 scale。在线性代数项中,将该点乘以 定义的 缩放矩阵scale

unscaleBy( <Pointscale)Point

逆的scaleBy。将当前点的每个坐标除以每个坐标scale

round()Point

返回带圆角坐标的当前点的副本。

floor()Point

返回带有地板坐标(向下舍入)的当前点的副本。

ceil()Point

返回带有ceiled坐标的当前点的副本(向上舍入)。

trunc()Point

返回带有截断坐标的当前点的副本(向零舍入)。

distanceTo( <Point>otherPoint)Number

返回当前点和给定点之间的笛卡尔距离。

equals( <PointotherPoint)Boolean

true如果给定点具有相同的坐标,则返回。

contains( <Point>otherPoint)Boolean

返回true给定的点的两个坐标是小于相应的当前点坐标(绝对值)。

toString()String

返回该点的字符串表示形式以进行调试。

属性

属性类型描述
x Numberx点的坐标
y Numbery点的坐标

边界

表示像素坐标中的矩形区域。

用法示例

var p1 = BM.point(10, 10),
p2 = BM.point(40, 60),
bounds = BM.bounds(p1, p2);

接受Bounds对象的所bm方法也以简单的Array形式接受它们(除非另有说明),因此上面的bounds示例可以像这样传递:

otherBounds.intersects([[10, 10], [40, 60]]);

请注意,Bounds不会从BM的Class对象继承,这意味着新类不能从它继承,并且无法使用该include函数向其添加新方法。

创建

构造描述
BM.bounds( <Pointcorner1, <Pointcorner2)从两个角坐标对创建一个Bounds对象。
BM.bounds( <Point[]> points)从给定的点数组创建Bounds对象。

方法

方法返回描述
extend( <Pointpoint)this

扩展边界以包含给定点。

getCenter( <Boolean> round?)Point

返回边界的中心点。

getBottomLeft()Point

返回边界的左下角。

getTopRight()Point

返回边界的右上角。

getTopLeft()Point

返回边界的左上角(即this.min)。

getBottomRight()Point

返回边界的右下角(即this.max)。

getSize()Point

返回给定边界的大小

contains( <BoundsotherBounds)Boolean

true如果矩形包含给定的矩形,则返回。

contains( <Pointpoint)Boolean

true如果矩形包含给定点,则返回。

intersects( <Bounds>otherBounds)Boolean

true如果矩形与给定边界相交,则返回。如果两个边界至少有一个共同点,则两个边界相交。

overlaps( <BoundsotherBounds)Boolean

true如果矩形与给定边界重叠,则返回。如果它们的交点是一个区域,则两个边界重叠。

属性

属性类型描述
min Point矩形的左上角。
max Point矩形的右下角。

图标

表示创建标记时要提供的图标。

用法示例

var myIcon = BM.icon({
    iconUrl: 'my-icon.png',
    iconSize: [38, 95],
    iconAnchor: [22, 94],
    popupAnchor: [-3, -76],
    shadowUrl: 'my-icon-shadow.png',
    shadowSize: [68, 95],
    shadowAnchor: [22, 94]
});
BM.marker([50.505, 30.57], {icon: myIcon}).addTo(map);

BM.Icon.Defaultextends BM.Icon,bm默认用于标记的蓝色图标。

创建

构造描述
BM.icon( <Icon optionsoptions)使用给定选项创建图标实例。

选项

配置类型默认描述
iconUrlStringnull(必需)图标图像的URL(绝对或相对于脚本路径)。
iconRetinaUrlStringnull视网膜大小的图标图像版本的URL(绝对或相对于您的脚本路径)。用于Retina屏幕设备。
iconSizePointnull图标图像的大小(以像素为单位)。
iconAnchorPointnull图标“尖端”的坐标(相对于其左上角)。图标将对齐,以使此点位于标记的地理位置。如果指定了size,则默认居中,也可以在具有负边距的CSS中设置。
popupAnchorPoint[0, 0]弹出窗口相对于图标锚点“打开”的点的坐标。
tooltipAnchorPoint[0, 0]相对于图标锚点,工具提示将“打开”的点的坐标。
shadowUrlStringnull图标阴影图像的URL。如果未指定,则不会创建阴影图像。
shadowRetinaUrlStringnull 
shadowSizePointnull阴影图像的大小(以像素为单位)。
shadowAnchorPointnull阴影“尖端”的坐标(相对于其左上角)(如果未指定,则与iconAnchor相同)。
classNameString''要分配给图标和阴影图像的自定义类名。默认为空。

方法

方法返回描述
createIcon( <HTMLElement> oldIcon?)HTMLElement

在必须显示图标时在内部调用,返回<img>根据选项设置样式的HTML元素。

createShadow( <HTMLElement> oldIcon?)HTMLElement

作为createIcon,但对于它下面的阴影。

Icon.Default

一个简单的子类Icon,表示Marker当没有指定图标时在s中使用的图标。指向bm版本一起分发的蓝色标记图像。要自定义默认图标,只需更改BM.Icon.Default.prototype.options (一组Icon options)的属性。如果要完全替换默认图标, BM.Marker.prototype.options.icon请改为使用您自己的图标。

配置类型默认描述
imagePathString Icon.Default将尝试自动检测蓝色图标图像的位置。如果要以非标准方式放置这些图像,请将此选项设置为指向正确的路径。

DivIcon

通过可以定义<div>来设置图形标记(如iconfont),相比Icon省去了iconUrl状语从句:阴影配置。

使用示例

var myIcon = BM.divIcon({className: 'my-div-icon'});
// you can set .my-div-icon styles in CSS
BM.marker([50.505, 30.57], {icon: myIcon}).addTo(map);

默认情况下,Class为bm-div-icon',一个带有有阴影的白色小正方形。

创建

方法描述
BM.divIcon( <DivIcon optionsoptions)一个创建³³新的DivIcon并配置。

配置

配置类型默认描述
htmlString''自定义HTML元素,默为未空
bgPosPoint[0, 0]设置背景相对位置(单位px)

▶从图标继承的配置

方法

▶从图标继承的方法

Control.Zoom

带有两个按钮的基本变焦控制(放大和缩小)。默认情况下,它会放在地图上,除非您将其zoomControl选项设置为false。延伸Control

创建

构造描述
BM.control.zoom( <Control.Zoom optionsoptions)创建缩放控件

选项

配置类型默认描述
zoomInTextString'+'“放大”按钮上设置的文字。
zoomInTitleString'Zoom in'标题设置在“放大”按钮上。
zoomOutTextString'&#x2212''缩小'按钮上设置的文字。
zoomOutTitleString'Zoom out'标题设置在“缩小”按钮上。

▶继承自Control的选项

方法

▶从Control继承的方法

Control.Attribution

归因控件允许您在地图上的小文本框中显示归因数据。默认情况下,它会放在地图上,除非您将其attributionControl选项设置为false,并且它会自动使用该getAttribution方法从图层中提取属性文本。扩展控制。

创建

构造描述
BM.control.attribution( <Control.Attribution optionsoptions)创建归因控件。

选项

配置类型默认描述
prefixStringbm在属性之前显示的HTML文本。通过false禁用。

▶继承自Control的选项

方法

方法返回描述
setPrefix( <String> prefix)this

设置属性之前的文本。

addAttribution( <String> text)this

添加归因文本(例如'Vector data &copy; Mapbox')。

removeAttribution( <String> text)this

删除归因文字。

▶从Control继承的方法

Control.Layers

图层控件使用户能够在不同的基础层之间切换并打开/关闭覆盖图(查看详细示例)。延伸Control

用法示例

var baseLayers = {
    "Mapbox": mapbox,
    "OpenStreetMap": osm
};
var overlays = {
    "Marker": marker,
    "Roads": roadsLayer
};
BM.control.layers(baseLayers, overlays).addTo(map);

baseLayersoverlays参数是对象常量与层名作为密钥和Layer对象作为值:

{
    "<someName1>": layer1,
    "<someName2>": layer2
}

图层名称可以包含HTML,允许您为项目添加其他样式:

{"<img src='my-layer-icon' /> <span class='my-layer-item'>My Layer</span>": myLayer}

创建

构造描述
BM.control.layers( <Object> baselayers?,<Object> overlays?, <Control.Layers options>options?)使用给定图层创建归因控件。基础层将使用单选按钮切换,而叠加将使用复选框切换。请注意,所有基础图层都应在基础图层对象中传递,但在地图实例化期间只应将一个基础图层添加到地图中。

选项

配置类型默认描述
collapsedBooleantrue如果true,控件将折叠为图标并在鼠标悬停或触摸时展开。
autoZIndexBooleantrue如果true,控件将zIndexes按递增顺序分配给其所有图层,以便在打开/关闭它们时保留顺序。
hideSingleBaseBooleanfalse如果true,只有一个控件中的基础图层将被隐藏。
sortLayersBooleanfalse是否对图层进行排序。何时false,图层将保持它们添加到控件的顺序。
sortFunctionFunction*比较功能 将被用于排序所述层,当sortLayerstrue。该函数接收BM.Layer实例及其名称,如 sortFunction(layerA, layerB, nameA, nameB)。默认情况下,它按名称的字母顺序对图层进行排序。

▶继承自Control的选项

方法

方法返回描述
addBaseLayer( <Layerlayer, <String> name)this

向控件添加具有给定名称的基础图层(单选按钮条目)。

addOverlay( <Layerlayer, <String> name)this

向控件添加具有给定名称的叠加层(复选框条目)。

removeLayer( <Layerlayer)this

从控件中删除给定的图层。

expand()this

如果折叠,则展开控件容器。

collapse()this

如果展开,则折叠控件容器。

▶从Control继承的方法

Control.Scale

一个简单的比例控制,以公制(m / km)和英制(mi / ft)系统显示当前屏幕中心的比例。延伸Control

用法示例

BM.control.scale().addTo(map);

创建

构造描述
BM.control.scale( <Control.Scale optionsoptions?)使用给定选项创建缩放控件。

选项

配置类型默认描述
maxWidthNumber100控件的最大宽度(以像素为单位)。动态设置宽度以显示圆值(例如100,200,500)。
metricBooleanTrue是否显示公制刻度线(m / km)。
imperialBooleanTrue是否显示英制刻度线(mi / ft)。
updateWhenIdleBooleanfalse如果true,控件更新moveend,否则它始终是最新的(更新move)。

▶继承自Control的选项

方法

▶从Control继承的方法

浏览器

 

用法示例

if (BM.Browser.ielt9) {
  alert('Upgrade your browser, dude!');
}

属性

属性类型描述
ie Booleantrue 适用于所有Internet Explorer版本(不是Edge)。
ielt9 Booleantrue 适用于小于9的Internet Explorer版本。
edge Booleantrue 用于Edge Web浏览器。
webkit Booleantrue 适用于基于webkit的浏览器,如Chrome和Safari(包括移动版)。
android Booleantrue 适用于在Android平台上运行的任何浏览器。
android23 Booleantrue 适用于在Android 2或Android 3上运行的浏览器。
androidStock Booleantrue 对于Android股票浏览器(即不是Chrome)
opera Booleantrue 对于Opera浏览器
chrome Booleantrue 对于Chrome浏览器。
gecko Booleantrue 用于基于gecko的浏览器,如Firefox。
safari Booleantrue 用于Safari浏览器。
opera12 Booleantrue 支持CSS转换的Opera浏览器(版本12或更高版本)。
win Booleantrue 当浏览器在Windows平台上运行时
ie3d Booleantrue 适用于支持CSS转换的所有Internet Explorer版本。
webkit3d Booleantrue 用于支持CSS转换的基于webkit的浏览器。
gecko3d Booleantrue 用于支持CSS转换的基于gecko的浏览器。
any3d Booleantrue 适用于支持CSS转换的所有浏览器。
mobile Booleantrue 适用于在移动设备上运行的所有浏览器。
mobileWebkit Booleantrue 适用于移动设备中所有基于webkit的浏览器。
mobileWebkit3dBooleantrue 适用于支持CSS转换的移动设备中所有基于webkit的浏览器。
msPointer Booleantrue 用于实现Microsoft触摸事件模型的浏览器(特别是IE10)。
pointer Booleantrue支持指针事件的所有浏览器。
touch Booleantrue支持所有浏览器的触摸事件。这并不一定意味着浏览器在带触摸屏的计算机上运行,​​这只意味着浏览器能够理解触摸事件。
mobileOpera Booleantrue 用于移动设备中的Opera浏览器。
mobileGecko Booleantrue 用于在移动设备中运行的基于gecko的浏览器。
retina Booleantrue 适用于高分辨率“视网膜”屏幕上的浏览器。
canvas Booleantrue当浏览器支持时<canvas>
svg Booleantrue当浏览器支持SVG时
vml Booleantrue如果浏览器支持VML

UTIL

 

功能

功能返回描述
extend( <Object> dest,<Object> src?)Objectsrc对象(或多个对象)的属性合并到dest对象中并返回后者。有BM.extend捷径。
create( <Object> proto,<Object> properties?)ObjectObject.create的兼容性polyfill
bind( <Function> fn)Function返回绑定到传递的参数的新函数,如Function.prototype.bind。有BM.bind()捷径。
stamp( <Object> obj)Number返回对象的唯一ID,如果没有它,则指定一个对象。
throttle( <Function> fn,<Number> time, <Object>context)Function返回一个执行fn具有给定范围的函数的函数context (以便this关键字引用context内部fn的代码)。fn每个给定量的函数 调用的次数不会超过一次time。绑定函数接收的参数将是绑定函数时传递的任何参数,后跟调用绑定函数时传递的任何参数。有BM.throttle捷径。
wrapNum( <Number> num,<Number[]> range,<Boolean> includeMax?)Number以这样的方式返回num模数range,使其位于 range[0]和中range[1]。返回值将始终小于range[1]除非includeMax设置为true
falseFn()Function返回一个总是返回的函数false
formatNum( <Number> num,<Number> digits?)Number返回num舍入为digits小数的数字,或默认返回6位小数。
trim( <String> str)StringString.prototype.trim的兼容性polyfill
splitWords( <String> str)String[]修剪并拆分空格上的字符串并返回部件数组。
setOptions( <Object> obj,<Object> options)Object合并给定的属性添加到options了的obj对象,返回结果的选项。见Class options。有BM.setOptions捷径。
getParamString( <Object>obj, <String>existingUrl?, <Boolean>uppercase?)String将对象转换为参数URL字符串,例如{a: "foo", b: "bar"} 转换为'?a=foo&b=bar'。如果existingUrl设置,则参数将在末尾附加。如果uppercasetrue,参数名称将为大写(例如'?A=foo&B=bar'
template( <String> str,<Object> data)String简单的模板工具,接受表单的模板字符串'Hello {a}, {b}' 和数据对象{a: 'foo', b: 'bar'},返回计算字符串 ('Hello foo, bar')。您还可以为数据值指定函数而不是字符串 - 它们将data作为参数传递。
isArray(obj)BooleanArray.isArray的兼容性polyfill
indexOf( <Array> array,<Object> el)NumberArray.prototype.indexOf的兼容性polyfill
requestAnimFrame(<Function> fn, <Object>context?, <Boolean>immediate?)Numberfn浏览器重新绘制时要执行的计划。如果有的话,这fn是必然的 context。当immediate设置,fn则如果浏览器不具备原生支持立即打电话 window.requestAnimationFrame,否则就延迟了。返回可用于取消请求的请求ID。
cancelAnimFrame( <Number>id)undefined取消之前的requestAnimFrame。另请参见window.cancelAnimationFrame

属性

属性类型描述
lastId Number最后使用的唯一ID stamp()
emptyImageUrlString包含base64编码的空GIF图像的数据URI字符串。用作黑客,以便从WebKit驱动的移动设备上的未使用图像中释放内存(通过将图像设置src为此字符串)。

转型

代表仿射变换:一组系数abcd 转化形式的点(x, y)(a*x + b, c*y + d),做相反。bm在其投影代码中使用。

用法示例

var transformation = BM.transformation(2, 5, -1, 10),
    p = BM.point(1, 2),
    p2 = transformation.transform(p), //  BM.point(7, 8)
    p3 = transformation.untransform(p2); //  BM.point(1, 2)

创建

构造描述
BM.transformation( <Number> a, <Number> b, <Number> c,<Number> d)使用给定系数实例化Transformation对象。
BM.transformation( <Array> coefficients)期望表单的系数数组 [a: Number, b: Number, c: Number, d: Number]

方法

方法返回描述
transform( <Pointpoint, <Number>scale?)Point

返回一个转换点,可选地乘以给定的比例。仅接受实际BM.Point实例,而不接受数组。

untransform( <Pointpoint, <Number>scale?)Point

返回给定点的反向变换,可选地除以给定的比例。仅接受实际BM.Point实例,而不接受数组。

LineUtil

用于折线点处理的各种实用程序函数,bm在内部用于使折线快速闪烁。

功能

功能返回描述
simplify( <Point[]> points,<Number> tolerance)Point[]使用Douglas-Peucker算法,在保持其形状的同时显着减少折线中的点数并返回一个新的简化点阵列 。用于处理/显示每个缩放级别bm折线并且还降低视觉噪声时的巨大性能提升。容差会影响简化量(较小的值意味着更高的质量,但速度更慢,点数更多)。也作为分离的微库Simplify.js发布
pointToSegmentDistance(<Pointp, <Pointp1, <Point>p2)Number返回点之间的距离p和段p1p2
closestPointOnSegment(<Pointp, <Pointp1, <Point>p2)Number返回从一个点的最近点p上的段p1p2
clipSegment( <Pointa,<Pointb, <Boundsbounds,<Boolean> useLastCode?,<Boolean> round?)Point[]|Boolean使用Cohen-Sutherland算法通过矩形边界剪切片段a到b (直接修改片段点!)。
isFlat( <LatLng[]> latlngs)Boolean如果latlngs是平面数组,则返回true ,嵌套为false。

PolyUtil

多边形几何的各种实用函数。

功能

功能返回描述
clipPolygon( <Point[]> points,<Boundsbounds, <Boolean> round?)Point[]剪切由给points定边界定义的多边形几何体(使用Sutherland-Hodgman算法)。请注意,多边形点需要不同的裁剪算法而不是折线,因此有一个单独的方法。

DomEvent

实用程序函数用于处理的DOM事件

功能

功能返回描述
on( <HTMLElement> el, <String>types, <Function> fn, <Object>context?)this将侦听器函数(fn)添加到元素的特定DOM事件类型el。您可以选择指定侦听器的上下文(this关键字将指向的对象)。您还可以传递多个以空格分隔的类型(例如'click dblclick')。
on( <HTMLElement> el, <Object>eventMap, <Object> context?)this添加一组类型/侦听器对,例如 {click: onClick, mousemove: onMouseMove}
off( <HTMLElement> el, <String>types, <Function> fn, <Object>context?)this删除以前添加的侦听器功能。请注意,如果将自定义上下文传递给on,则必须传递相同的上下文off才能删除侦听器。
off( <HTMLElement> el, <Object>eventMap, <Object> context?)this删除一组类型/侦听器对,例如 {click: onClick, mousemove: onMouseMove}
stopPropagation( <DOMEvent> ev)this停止给定事件传播到父元素。在侦听器函数中使用:
BM.DomEvent.on(div, 'click', function (ev) {
    BM.DomEvent.stopPropagation(ev);
});
disableScrollPropagation(<HTMLElement> el)this添加stopPropagation到元素的'mousewheel'事件(以及浏览器变体)。
disableClickPropagation(<HTMLElement> el)this添加stopPropagation到元素的'click''doubleclick''mousedown''touchstart'事件(加上浏览器变种)。
preventDefault( <DOMEvent> ev)this阻止DOM事件的默认操作ev发生(例如,跟随a元素的href中的链接,或者在<form>提交a时执行带有页面重新加载的POST请求)。在侦听器函数中使用它。
stop( <DOMEvent> ev)thisstopPropagationpreventDefault同时。
getMousePosition( <DOMEvent> ev,<HTMLElement> container?)Pointcontainer如果未指定,则从DOM事件相对于整个页面获取标准化的鼠标位置 。
getWheelDelta( <DOMEvent> ev)Number从鼠标滚轮DOM事件获取标准化的轮增量,以垂直像素滚动(如果向下滚动则为负)。来自没有精确滚动的指点设备的事件被映射到60像素的最佳猜测。
addListener()this别名来 BM.DomEvent.on
removeListener()this别名来 BM.DomEvent.off

DomUtil

实用程序函数与DOM 树一起使用,bm在内部使用。期望或返回的大多数函数HTMLElement也适用于SVG元素。唯一的区别是类引用了SVG中的CSS类和SVG中的SVG类。

功能

功能返回描述
get( <String|HTMLElement> id)HTMLElement返回给定其DOM id的元素,如果直接传递则返回元素本身。
getStyle( <HTMLElement> el,<String> styleAttrib)String返回元素上某个样式属性的值,包括计算值或通过CSS设置的值。
create( <String> tagName, <String>className?, <HTMLElement>container?)HTMLElement创建一个HTML元素tagName,将其类设置为className,并可选择将其附加到container元素。
remove( <HTMLElement> el) el从其父元素中删除
empty( <HTMLElement> el) 删除所有el的子元素el
toFront( <HTMLElement> el) 制作el其父级的最后一个子级,因此它在其他子级之前呈现。
toBack( <HTMLElement> el) 使el其父元素的第一个子元素成为其他子元素的后代。
hasClass( <HTMLElement> el,<String> name)Boolean返回true元素的class属性是否包含name
addClass( <HTMLElement> el,<String> name) 添加name到元素的class属性。
removeClass( <HTMLElement> el,<String> name) name从元素的class属性中删除。
setClass( <HTMLElement> el,<String> name) 设置元素的类。
getClass( <HTMLElement> el)String返回元素的类。
setOpacity( <HTMLElement> el,<Number> opacity) 设置元素的不透明度(包括旧的IE支持)。 opacity必须从数量01
testProp( <String[]> props)String|false遍历样式名称数组并返回第一个名称,该名称是元素的有效样式名称。如果找不到这样的名称,则返回false。对于像transform。这样的供应商前缀样式很有用。
setTransform( <HTMLElement> el,<Pointoffset, <Number> scale?) 重置3D CSS变换,el使其按offset像素平移,并可选择按比例缩放scale。如果浏览器不支持3D CSS变换,则无效。
setPosition( <HTMLElement> el,<Pointposition) 设置el指定坐标的位置position,使用CSS平移或顶部/左侧定位,具体取决于浏览器bm内部用于定位其图层)。
getPosition( <HTMLElement> el)Point返回先前使用setPosition定位的元素的坐标。
disableTextSelection() 阻止用户生成selectstartDOM事件,通常在用户将鼠标拖动到带有文本的页面时生成。bm在内部使用,以覆盖地图上任何单击和拖动交互的行为。影响整个文档的拖动交互。
enableTextSelection() 取消之前的效果BM.DomUtil.disableTextSelection
disableImageDrag() BM.DomUtil.disableTextSelection,但对于dragstartDOM事件,通常当用户拖动的图像生成。
enableImageDrag() 取消之前的效果BM.DomUtil.disableImageDrag
preventOutline( <HTMLElement> el) 使 元素的轮廓el不可见。bm内部使用,以防止可聚焦元素在用户对它们执行拖动交互时显示轮廓。
restoreOutline() 取消之前的效果BM.DomUtil.preventOutline

属性

属性类型描述
TRANSFORM String供应商前缀的转换样式名称(例如,'webkitTransform'对于WebKit)。
TRANSITION String供应商前缀过渡样式名称。
TRANSITION_END String供应商前缀的transitionend事件名称。

PosAnimation

内部用于平移动画,利用现代浏览器的CSS3过渡和IE6-9的计时器回退。

用法示例

var fx = new BM.PosAnimation();
fx.run(el, [300, 500], 0.5);

构造函数

构造函数描述
BM.PosAnimation()创建一个PosAnimation对象。

活动

事件数据描述
start Event动画开始时触发
step Event在动画期间连续拍摄。
end Event动画结束时触发。

方法

方法返回描述
run( <HTMLElement> el, <PointnewPos,<Number> duration?, <Number> easeLinearity?) 

运行给定元素的动画到一个新的位置,任选地设置持续时间秒(0.25默认)和宽松的线性因子(的第三参数三次Bezier曲线, 0.5默认情况下)。

stop() 

停止动画(如果当前正在运行)。

▶从Evented继承的方法

可拖动

用于使DOM元素可拖动的类(包括触摸支持)。内部用于地图和标记拖动。仅适用于定位的元素BM.DomUtil.setPosition

用法示例

var draggable = new BM.Draggable(elementToDrag);
draggable.enable();

构造函数

构造函数描述
BM.Draggable( <HTMLElement> el, <HTMLElement> dragHandle?, <Boolean>preventOutline?, <Draggable optionsoptions?)开始拖动元素时创建一个Draggable移动对象(默认情况下等于自身)。eldragHandleel

选项

配置类型默认描述
clickToleranceNumber3用户可以在单击期间移动鼠标指针的最大像素数,以使其被视为有效点击(与鼠标拖动相反)。

活动

事件数据描述
down Event阻力即将开始时被触发。
dragstart Event拖动开始时触发
predrag Event每次相应更新元素位置之前,在拖动过程中连续触发。
drag Event在拖动过程中连续触发。
dragend DragEndEvent拖动结束时触发。

方法

方法返回描述
enable() 

启用拖动功能

disable() 

禁用拖动功能

▶从Evented继承的方法

BM.Classbm的OOP工具提供支持,用于创建此处记录的几乎所bm类。除了实现一个简单的经典继承模型之外,它还为方便的代码组织引入了几个特殊属性 - 选项,包含和静态。

用法示例

var MyClass = BM.Class.extend({
initialize: function (greeter) {
    this.greeter = greeter;
    // class constructor
},
greet: function (name) {
    alert(this.greeter + ', ' + name)
    }
});
// create instance of MyClass, passing "Hello" to the constructor
var a = new MyClass("Hello");
// call greet method, alerting "Hello, World"
a.greet("World");

类工构造

您可能已经注意到,在不使用new关键字的情况下创建bm对象。这是通过使用小写工构造方法补充每个类来实现的:

new BM.Map('map'); // becomes:
BM.map('map');

工构造很容易实现,你可以为自己的类做到这一点:

BM.map = function (id, options) {
    return new BM.Map(id, options);
};

遗产

您使用BM.Class.extend定义新类,但您可以在任何类上使用相同的方法继承它:

var MyChildClass = MyClass.extend({
    // ... new properties and methods
});

这将创建一个继承父类的所有方法和属性的类(通过适当的原型链),添加或覆盖您传递的扩展。它还将对instanceof做出正确反应:

var a = new MyChildClass();
a instanceof MyChildClass; // true
a instanceof MyClass; // true

您可以通过访问父类原型并使用JavaScript调用或应用来从相应的子方法(与其他语言中的超级调用一样)调用父方法(包括构造函数):

var MyChildClass = MyClass.extend({
    initialize: function () {
        MyClass.prototype.initialize.call(this, "Yo");
    },
    greet: function (name) {
        MyClass.prototype.greet.call(this, 'bro ' + name + '!');
    }
});
var a = new MyChildClass();
a.greet('Jason'); // alerts "Yo, bro Jason!"

选项

options是一个特殊属性,与您传递给的其他对象不同,extend它将与父对象合并而不是完全覆盖它,这使得管理对象和默认值的配置变得方便:

var MyClass = BM.Class.extend({
    options: {
        myOption1: 'foo',
        myOption2: 'bar'
    }
});
var MyChildClass = MyClass.extend({
    options: {
        myOption1: 'baz',
        myOption3: 5
    }
});
var a = new MyChildClass();
a.options.myOption1; // 'baz'
a.options.myOption2; // 'bar'
a.options.myOption3; // 5

还有BM.Util.setOptions一种方法可以方便地合并传递给构造函数的选项,并在类中定义默认值:

var MyClass = BM.Class.extend({
    options: {
        foo: 'bar',
        bla: 5
    },
    initialize: function (options) {
        BM.Util.setOptions(this, options);
        ...
    }
});
var a = new MyClass({bla: 10});
a.options; // {foo: 'bar', bla: 10}

请注意,options对象允许任何键,而不仅仅是类及其基类定义的选项。这意味着您可以使用options对象存储特定于应用程序的信息,只要您避免使用相关类已经使用过的键即可。

包括

includes 是一个特殊的类属性,它将所有指定的对象合并到类中(这些对象称为mixins)。

 var MyMixin = {
    foo: function () { ... },
    bar: 5
};
var MyClass = BM.Class.extend({
    includes: MyMixin
});
var a = new MyClass();
a.foo();

您还可以在运行时使用以下include方法执行此类包含:

MyClass.include(MyMixin);

statics 只是一个便利属性,它将指定的对象属性作为类的静态属性注入,对定义常量很有用:

var MyClass = BM.Class.extend({
    statics: {
        FOO: 'bar',
        BLA: 5
    }
});
MyClass.FOO; // 'bar'

构造函数钩子

如果您是插件开发人员,则通常需要向现有类添加其他初始化代码(例如,编辑挂钩BM.Polyline)。addInitHook方法轻松完成的方法:

MyClass.addInitHook(function () {
    // ... do something in constructor additionally
    // e.g. add event listeners, set custom properties etc.
});

当您只需要进行一次额外的方法调用时,也可以使用以下快捷方式:

MyClass.addInitHook('methodName', arg1, arg2, …);

功能

功能返回描述
extend( <Object> props)Function给定要包含的属性,扩展当前类。返回一个Javascript函数,它是一个类构造函数(要调用new)。
include( <Object>properties)this包含当前类的mixin
mergeOptions( <Object>options)this合并options到类的默认值。
addInitHook( <Function> fn)this向类添加构造函数钩子

事件触发

在事件驱动的类(例如MapMarker)之间共享的一组方法。通常,事件允许您在对象发生某些事情时执行某些功能(例如,用户点击地图,导致地图触发'click'事件)。

用法示例

map.on('click', function(e) {
    alert(e.latlng);
} );

 

function onClick(e) { ... }
map.on('click', onClick);
map.off('click', onClick);

方法

方法返回描述
on( <String> type, <Function>fn, <Object> context?)this

将侦听器函数(fn)添加到对象的特定事件类型。您可以选择指定侦听器的上下文(this关键字指向的对象)。您还可以传递多个以空格分隔的类型(例如'click dblclick')。

on( <Object> eventMap)this

添加一组类型/侦听器对,例如 {click: onClick, mousemove: onMouseMove}

off( <String> type,<Function> fn?, <Object>context?)this

删除以前添加的侦听器功能。如果未指定任何函数,它将从对象中删除该特定事件的所有侦听器。请注意,如果您将自定义上下文传递给on,则必须传递相同的上下文off才能删除侦听器。

off( <Object> eventMap)this

删除一组类型/侦听器对。

off()this

删除对象上所有事件的所有侦听器。

fire( <String> type, <Object>data?, <Boolean> propagate?)this

触发指定类型的事件。您可以选择提供数据对象 - 侦听器函数的第一个参数将包含其属性。该事件可以选择性地传播给事件父母。

listens( <String> type)Boolean

返回true如果一个特定的事件类型有附带任何听众。

once()this

表现为on(…),除了监听器只会被触发一次然后被删除。

addEventParent( <Evented>obj)this

添加事件父级 - Evented将接收传播事件的事件

removeEventParent( <Evented>obj)this

删除事件父级,因此它将停止接收传播的事件

addEventListener()this

别名来 on(…)

removeEventListener()this

别名来 off(…)

clearAllEventListeners()this

别名来 off()

addOneTimeEventListener()this

别名来 once(…)

fireEvent()this

别名来 fire(…)

hasEventListeners()Boolean

别名来 listens(…)

所bm图层使用的Layer基类中的一组方法。继承所有方法,选项和事件BM.Evented

用法示例

var layer = BM.Marker(latlng).addTo(map);
layer.addTo(map);
layer.remove();

选项

配置类型默认描述
paneString'overlayPane'默认情况下,图层将添加到地图的叠加窗格中。覆盖此选项将导致默认情况下将图层放置在另一个窗格上。
attributionStringnull要在归属控件中显示的字符串,描述图层数据,例如“©Mapbox”。

活动

事件数据描述
add Event将图层添加到地图后触发
remove Event从地图中删除图层后触发

弹出事件

事件数据描述
popupopen PopupEvent打开绑定到此图层的弹出窗口时触发
popupclose PopupEvent绑定到此图层的弹出窗口关闭时触发

工具提示事件

事件数据描述
tooltipopen TooltipEvent打开绑定到此图层的工具提示时触发。
tooltipclose TooltipEvent绑定到此图层的工具提示关闭时触发。

方法

扩展类BM.Layer将继承以下方法:

方法返回描述
addTo( <Map|LayerGroup> map)this

将图层添加到给定的地图或图层组。

remove()this

从当前处于活动状态的地图中删除图层。

removeFrom( <Mapmap)this

从给定的地图中删除图层

getPane( <String> name?)HTMLElement

返回HTMLElement表示地图上命名窗格的内容。如果name省略,则返回此图层的窗格。

getAttribution()String

由the使用attribution control,返回归属选项

扩展方法

每一层都应该从BM.Layer(并重新)实现以下方法。

方法返回描述
onAdd( <Map>map)this

应该包含为图层创建DOM元素的代码,将它们添加到map panes它们应该属于的位置,并将侦听器放在相关的地图事件上。打电话给map.addLayer(layer)

onRemove( <Map>map)this

应该包含从DOM中删除图层元素的所有清理代码,并删除以前添加的侦听器onAdd。打电话给map.removeLayer(layer)

getEvents()Object

这个可选方法应该返回一个像{ viewreset: this._reset }for 的对象addEventListener。此对象中的事件处理程序将自动添加到地图中并与您的图层一起删除。

getAttribution()String

此可选方法应返回包含HTML的字符串,以便Attribution control在图层可见时显示。

beforeAdd( <Map>map)this

可选方法。map.addLayer(layer)在将图层添加到地图之前,在事件初始化之前调用,而不等到地图处于可用状态。仅用于早期初始化。

弹出方法

所有图层共享一组便于将弹出窗口绑定到它的方法。

var layer = BM.Polygon(latlngs).bindPopup('Hi There!').addTo(map);
layer.openPopup();
layer.closePopup();

单击图层时弹出窗口也将自动打开,当从地图中删除图层或打开另一个弹出窗口时,弹出窗口将关闭。

方法返回描述
bindPopup(<String|HTMLElement|Function|Popup>content, <Popup optionsoptions?)this

使用传递content将弹出窗口绑定到图层,并设置必要的事件侦听器。如果a Function被传递,它将接收图层作为第一个参数,并应返回一个StringHTMLElement

unbindPopup()this

删除以前绑定的弹出窗口bindPopup

openPopup( <LatLnglatlng?)this

latlng如果未latlng传递,则在指定或默认弹出锚点处打开绑定弹出窗口。

closePopup()this

如果已打开,则关闭绑定到此图层的弹出窗口。

togglePopup()this

打开或关闭绑定到此图层的弹出窗口,具体取决于其当前状态。

isPopupOpen()boolean

返回true如果绑定到该层的弹出当前处于打开状态。

setPopupContent(<String|HTMLElement|Popup> content)this

设置绑定到此图层的弹出窗口的内容。

getPopup()Popup

返回绑定到此图层的弹出窗口。

工具提示方法

所有图层共享一组便于将工具提示绑定到它的方法。

var layer = BM.Polygon(latlngs).bindTooltip('Hi There!').addTo(map);
layer.openTooltip();
layer.closeTooltip();
方法返回描述
bindTooltip(<String|HTMLElement|Function|Tooltip>content, <Tooltip optionsoptions?)this

使用传递content将工具提示绑定到图层并设置必要的事件侦听器。如果a Function被传递,它将接收图层作为第一个参数,并应返回一个StringHTMLElement

unbindTooltip()this

删除以前绑定的工具提示bindTooltip

openTooltip( <LatLnglatlng?)this

latlng如果未latlng传递,则在指定或默认工具提示锚点处打开绑定工具提示。

closeTooltip()this

如果已打开,则关闭绑定到此图层的工具提示。

toggleTooltip()this

打开或关闭绑定到此图层的工具提示,具体取决于其当前状态。

isTooltipOpen()boolean

返回true绑定到此图层的工具提示当前是否打开。

setTooltipContent(<String|HTMLElement|Tooltip> content)this

设置绑定到此图层的工具提示的内容。

getTooltip()Tooltip

返回绑定到此图层的工具提示。

▶从Evented继承的方法

交互层

一些Layers可以是交互式的 - 当用户与这样的层交互时clickmouseover可以处理类似和可以处理的鼠标事件。使用事件处理方法来处理这些事件。

选项

配置类型默认描述
interactiveBooleantrue如果false,图层不会发出鼠标事件,并将作为底层地图的一部分。
bubblingMouseEventsBooleantrue何时true,此图层上的鼠标事件将在地图上触发相同的事件(除非BM.DomEvent.stopPropagation使用)。

▶继承自Layer的选项

活动

鼠标事件

事件数据描述
click MouseEvent用户单击(或点击)图层时触发。
dblclick MouseEvent当用户双击(或双击)图层时触发。
mousedown MouseEvent当用户在图层上按下鼠标按钮时触发。
mouseup MouseEvent当用户释放在图层上按下的鼠标按钮时触发。
mouseover MouseEvent鼠标进入图层时触发。
mouseout MouseEvent当鼠标离开图层时触发。
contextmenuMouseEvent当用户右键单击图层时触发,防止默认浏览器上下文菜单显示此事件是否有侦听器。当用户持续一次触摸(也称为长按)时,也会在手机上触发。

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

控制

BM.Control是实现地图控件的基类。处理定位。所有其他控件都从此类扩展而来。

选项

配置类型默认描述
positionString'topright'控件的位置(地图角之一)。可能的值是'topleft', 'topright''bottomleft'或者'bottomright'

方法

扩展BM.Control的类将继承以下方法:

方法返回描述
getPosition()string

返回控件的位置。

setPosition( <string> position)this

设置控件的位置。

getContainer()HTMLElement

返回包含该控件的HTMLElement。

addTo( <Mapmap)this

将控件添加到给定的地图。

remove()this

从当前处于活动状态的地图中删除控件。

扩展方法

每个控件都应该从BM.Control(并重新)实现以下方法。

方法返回描述
onAdd( <Mapmap)HTMLElement

应返回控件的容器DOM元素,并在相关的地图事件上添加侦听器。打电话给control.addTo(map)

onRemove( <Map>map) 

可选方法。应包含删除先前添加的侦听器的所有清理代码onAdd。打电话给control.remove()

处理器

地图交互处理程序的抽象类

方法

方法返回描述
enable()this

启用处理程序

disable()this

禁用处理程序

enabled()Boolean

true如果启用了处理程序,则返回

扩展方法

从中继承的类Handler必须实现以下两个方法:

方法返回描述
addHooks() 

在启用处理程序时调用,应添加事件挂钩。

removeHooks() 

禁用处理程序时调用,应删除先前添加的事件挂钩。

功能

有静态函数可以在不实例化BM.Handler的情况下调用:

功能返回描述
addTo( <Mapmap, <String> name)this使用给定名称将新Handler添加到给定映射。

投影

具有用于将世界的地理坐标投影到平坦表面(和背面)上的方法的对象。请参见地图投影

方法

方法返回描述
project(<LatLng>latlng)Point

将地理坐标投影到2D点。仅接受实际BM.LatLng实例,而不接受数组。

unproject(<Point>point)LatLng

逆的project。将2D点投影到地理位置。仅接受实际BM.Point实例,而不接受数组。请注意,投影实例不从BM的Class对象继承,也无法实例化。此外,新类不能从它们继承,并且无法使用该include函数将方法添加到它们中。

属性

属性类型描述
bounds Bounds投影有效的边界(在CRS单位中指定)

定义预测

投影描述
BM.Projection.LonLatEquirectangular或Plate Carree投影 - 最简单的投影,主要由GIS爱好者使用。直接映射x为经度和y纬度。也适用于平面世界,例如游戏地图。由 EPSG:4326SimpleCRS使用。
BM.Projection.Mercator椭圆墨卡托投影 - 比球形墨卡托更复杂。考虑到地球是一个大地水准面,而不是一个完美的球体。由EPSG使用:3395 CRS。
BM.Projection.SphericalMercator球形墨卡托投影 - 在线地图最常见的投影,几乎所有免费和商业瓷砖供应商都使用。假设地球是一个球体。由EPSG:3857CRS使用。

CRS

方法

方法返回描述
latLngToPoint( <LatLnglatlng,<Number> zoom)Point

将地理坐标投影到给定缩放的像素坐标。

pointToLatLng( <Pointpoint,<Number> zoom)LatLng

逆的latLngToPoint。将给定缩放上的像素坐标投影到地理坐标中。

project( <LatLnglatlng)Point

将地理坐标投影到以此CRS接受的单位的坐标中(例如,EPSG的仪表:3857,用于将其传递给WMS服务)。

unproject( <Pointpoint)LatLng

给定一个投影坐标返回相应的LatLng。逆的project

scale( <Number> zoom)Number

返回将投影坐标转换​​为特定缩放的像素坐标时使用的比例。例如,它返回 256 * 2^zoom基于墨卡托的CRS。

zoom( <Number> scale)Number

反转scale(),返回对应于比例因子的缩放级别scale

getProjectedBounds( <Number>zoom)Bounds

返回为提供的缩放和变换的投影边界zoom

distance( <LatLnglatlng1,<LatLnglatlng2)Number

返回两个地理坐标之间的距离。

wrapLatLng( <LatLnglatlng)LatLng

如果它们在CRS的边界之外,则返回LatLng根据CRS wrapLatwrapLng属性包装的lat和lng 的位置。

wrapLatLngBounds(<LatLngBoundsbounds)LatLngBounds

返回LatLngBounds与给定大小相同的大小,确保其中心位于CRS的边界内。仅接受实际BM.LatLngBounds实例,而不接受数组。

属性

属性类型描述
code String传递给WMS服务的CRS的标准代码名称(例如'EPSG:3857'
wrapLngNumber[]两个数字的数组,用于定义经度(水平)坐标轴是否包围给定范围以及如何。默认为[-180, 180]大多数地理CRS。如果undefined,经度轴没有环绕。
wrapLatNumber[]喜欢wrapLng,但是对于纬度(垂直)轴。
infiniteBoolean如果为true,则坐标空间将无界(两个轴都无限)

定义的CRS

CRS描述
BM.CRS.EPSG3395使用椭圆墨卡托投影,较少被商用。
BM.CRS.EPSG3857使用球形墨卡托投影(crs默认使用),最广泛使用的CRS
BM.CRS.EPSG4326小叶1.0使用符合EPSG的TMS坐标方案:4326,如果你的TileLayer 用于此CRS,请确保在缩放级别位0时覆盖整个地球上有两个256x256的常被CIS极客盖瓦片,并且瓦片坐标为(-180,+ 90)和(-180,-90)在TileLayertms配置
BM.CRS.Earth作为CRS的基础,它们覆盖地球是全球性的。只能用作其他CRS的基础,不能直接使用,因为它没有codeprojectiontransformationdistance()返回米。
BM.CRS.Simple一个简单的CRS,可以将经度和纬度直接映射到x其中y。可用于平面地图(例如游戏地图)。请注意,y 轴仍应倒置(从下到上)。distance()返回简单的欧几里德距离。
BM.CRS.Base定义用于将地理点投影到像素(屏幕)坐标和背面(以及用于WMS服务的其他单元中的坐标)的坐标参考系统的对象。请参阅 空间参照系。如果要使用默认情况下未定义的CRS,请查看 Projbm插件。请注意,CRS实例不从BM的Class对象继承,也无法实例化。此外,新类不能从它们继承,并且无法使用该include函数将方法添加到它们中。

渲染

矢量渲染器实现的基类(SVGCanvas)。处理渲染器的DOM容器,其边界和缩放动画。A Renderer作为所有Paths 的隐式图层组- 渲染器本身可以添加或删除到地图。所有路径都使用渲染器,它可以是隐式的(地图将决定渲染器的类型并自动使用它)或显式(使用renderer路径选项)。不要直接使用这个类,而是使用SVGCanvas不是。

配置

配置类型默认描述
paddingNumber0.1在地图视图周围(相对于其大小)扩展剪辑区域的程度是多少,例如,0.1将是每个方向上的地图视图的10%
toleranceNumber0围绕地图上的路径/对象延伸点击容差的程度

▶继承自Layer的选项

活动

事件数据描述
update Event当渲染器更新其边界,居中和缩放时触发,例如当其地图移动时

▶从Layer继承的事件

▶从Layer继承的弹出事件

▶从Layer继承的工具提示事件

方法

▶从Layer继承的方法

▶从Layer继承的Popup方法

▶继承自Layer的工具提示方法

▶从Evented继承的方法

事件对象

每当从继承的类Evented触发事件时,将使用事件参数调用侦听器函数,该事件参数是包含有关事件的信息的普通对象。例如:

map.on('click', function(ev) {
    alert(ev.latlng); // ev is an event object (MouseEvent in this case)
});

可用信息取决于事件类型:

事件

基本事件对象。所有其他事件对象也包含这些属性。

属性类型描述
type String事件类型(例如'click')。
target Object触发事件的对象。对于传播事件,传播链中触发事件的最后一个对象。
sourceTarget Object最初触发事件的对象。对于非传播事件,这将与target
propagatedFrom Object对于传播事件,将事件传播到其事件父级的最后一个对象。
layer Object已过时。同样的propagatedFrom

的KeyboardEvent

属性类型描述
originalEvent DOMEvent触发bm事件的原始DOMKeyboardEvent

▶继承自Event的属性

的MouseEvent

属性类型描述
latlng LatLng鼠标事件发生的地理位置。
layerPoint Point鼠标事件相对于地图图层发生的点的像素坐标。
containerPoint Point鼠标事件发生点相对于地图сontainer的像素坐标。
originalEvent DOMEvent触发bm事件的原始DOMMouseEventDOMTouchEvent

▶继承自Event的属性

LocationEvent

属性类型描述
latlng LatLng检测到用户的地理位置。
bounds LatLngBounds区域用户的地理界限位于(相对于位置的准确性)。
accuracy Number以米为单位的准确度。
altitude NumberWGS84椭圆体上方位置的高度,以米为单位。
altitudeAccuracy Number海拔精度以米为单位。
heading Number从真北向顺时针方向的行程方向。
speed Number当前速度,以米/秒为单位。
timestamp Number获得该职位的时间。

▶继承自Event的属性

的ErrorEvent

属性类型描述
message String错误信息。
code Number错误代码(如果适用)。

▶继承自Event的属性

LayerEvent

属性类型描述
layer Layer添加或删除的图层。

▶继承自Event的属性

LayersControlEvent

属性类型描述
layer Layer添加或删除的图层。
name String添加或删除的图层的名称。

▶继承自Event的属性

TileEvent

属性类型描述
tile HTMLElementtile元素(图片)。
coords Point使用tile的x,, yz(缩放级别)坐标指向对象。

▶继承自Event的属性

TileErrorEvent

属性类型描述
tile HTMLElementtile元素(图片)。
coords Point使用tile的x,, yz(缩放级别)坐标指向对象。
error *错误传递给tile的done()回调。

▶继承自Event的属性

   
   
   
   
   
   

ResizeEvent

属性类型描述
oldSize Point调整大小事件之前的旧大小。
newSize Point调整大小事件后的新大小。

▶继承自Event的属性

GeoJSONEvent

属性类型描述
layer Layer要添加到地图的GeoJSON要素图层。
properties Object该功能的GeoJSON属性。
geometryType StringGeoJSON几何类型的特征。
id String功能的GeoJSON ID(如果存在)。

▶继承自Event的属性

PopupEvent

属性类型描述
popup Popup打开或关闭的弹出窗口。

▶继承自Event的属性

TooltipEvent

属性类型描述
tooltip Tooltip打开或关闭的工具提示。

▶继承自Event的属性

DragEndEvent

属性类型描述
distance Number移动可拖动元素的距离(以像素为单位)。

▶继承自Event的属性

ZoomAnimEvent

属性类型描述
center LatLng当前的地图中心
zoom Number地图的当前缩放级别
noUpdate Boolean层是否应该由于此事件而更新其内容

▶继承自Event的属性

DivOverlay

BM.Popup和BM.Tooltip的基本模型。继承自己的自定义弹出窗口,如插件。

选项

配置类型默认描述
offsetPointPoint(0, 7)弹出位置的偏移量。用于在某些叠加层上打开弹出窗口时控制弹出窗口的锚点。
classNameString''要分配给弹出窗口的自定义CSS类名称。
paneString'popupPane'Map pane 弹出窗口将被添加的位置。

▶继承自Layer的选项

咨询QQ::2480224524

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐