Map Class

Uses: Evented Camera
Module: UI

Map用于在网页上展示地图界面的类,用户可以通过js代码对其进行修改,并且进行交互操作.
用户可以通过定义页面容器和map选项来创建一个可供js调用的map对象.
Map通过Mixin 的方式整合在Evented模块中.

示例代码如下

var map = new minemap.Map({
  container: 'map',
  center: [116.38, 39.9],
  zoom: 13,
  style: style_object,
  hash: true
});
Show:

Methods

addControl

(controlposition)

向地图中添加一个Control控件,

Example:

control.addTo(this);

Parameters:

  • control Control

    要添加的Control控件。

  • position Position

    控件在地图中的位置。可选值有 'top-right', 'top-left', 'bottom-right', 和 'bottom-left'.

Returns:

Map

this

resize

()

根据自己的容器调整地图尺寸,当它的容器已经发生了变化之后或者地图通过css从隐藏改变为显示后才能调用该方法,

Returns:

Map

this

getBounds

()

返回地图的地理边界框。

Returns:

LngLatBounds

地图的地理边界框。

setMaxBounds

(lnglatbounds)

设置或清除地图地理边界框。
平移和缩放将会严格限制在该边界框之内,如果用户进行了平移或缩放操作,地图将会尽量匹配用户操作的结果,但是还是限制在该边界框内。

Parameters:

  • lnglatbounds LngLatBoundsLike | null | undefined

    设置地图的最大边界框 如果设定为 null 或者 undefined,地图最大边界框将会被删除。

Returns:

Map

this

setMinZoom

(minZoom)

设置地图的最小缩放级别 如果当前的缩放级别小于最新设定的最小缩放级别,那么地图将会将当前的缩放级别进行改变并与之匹配。

Parameters:

  • minZoom ?number

    最小缩放级别 (0-20). 如果设定为nullundefined,地图将会设定最小缩放级别为0。(i.e. sets it to 0).

Returns:

Map

this

setMaxZoom

(setMaxZoom)

设置地图的最小缩放级别 如果当前的缩放级别大于最新设定的最大缩放级别,那么地图将会将当前的缩放级别进行改变并与之匹配。

Parameters:

  • setMaxZoom ?number

    最小缩放级别 (0-20). 如果设定为nullundefined,地图将会设定最大缩放级别为20。(i.e. sets it to 20).

Returns:

Map

this

project

(lnglat)

依据经纬度返回的相对于当前容器坐标点Point

Parameters:

  • lnglat LngLatLike

    要转化为屏幕坐标点的经纬度。

Returns:

Point

依据经纬度返回的相对于当前容器坐标点Point

unproject

(point)

依据屏幕中的坐标点返回经纬度坐标LngLat

Parameters:

Returns:

LngLat

依据屏幕中的坐标点返回经纬度坐标LngLat

queryRenderedFeatures

(geometryparameters)

返回GeoJSON对象 Feature objects 查询可见的几何数据信息 在鼠标点上查询所有可见地图数据信息

Example:

 var features = map.queryRenderedFeatures(
   [20, 35],
   { layers: ['my-layer-name'] }
 );

用一个给定的边界框查询地图数据信息

 var features = map.queryRenderedFeatures(
   [[10, 20], [30, 50]],
   { layers: ['my-layer-name'] }
 );

通过制定鼠标点为中心定制一个边界框并查询边界框内的地图数据信息

 var width = 10;
 var height = 20;
 var features = map.queryRenderedFeatures([
     [point.x - width / 2, point.y - height / 2],
     [point.x + width / 2, point.y + height / 2]
 ], { layers: ['my-layer-name'] });

查询一个图层内的所有地图数据信息

 var features = map.queryRenderedFeatures({ layers: ['my-layer-name'] });

Parameters:

  • geometry PointLike | Array(PointLike)
  • parameters Object (optional)

Returns:

Array

GeoJSON 返回一个GeoJSON数组。 feature objects.

querySourceFeatures

(sourceIDparams)

获取数据源的地图数据信息。

Parameters:

  • sourceID String

    数据源的id。

  • params Object

Returns:

Array

setStyle

(style)

设置地图的样式

Parameters:

  • style Object | String

    指向一个可访问的地图样式描述的json文件

Returns:

Map

this

getStyle

()

返回当前的地图样式。

Returns:

Object

地图样式对象。

addSource

(idsource)

向地图样式中添加一个数据源。

Parameters:

  • id String

    添加一个唯一的字符串id,不能与其它数据源id冲突。

  • source Object

Returns:

Map

this

removeSource

(id)

删除地图样式中的一个数据源

Parameters:

  • id String

    数据源id

Returns:

Map

this

getSource

(id)

返回一个指定的地图样式数据源。

Parameters:

  • id String

    数据源id

Returns:

?Object

返回数据源对象或null。

moveLayer

(IdbeforeId)

图层移动层级

调整不同图层的前后位置顺序

Parameters:

  • Id String

    要移动的图层Id.

  • beforeId String (optional)

    目标图层Id,即移动到该图层之上,如果忽略该参数,要移动的图层将会移动到最上层。

Returns:

Map

this

addLayer

(layerbefore)

向地图样式中添加一个图层

图层中定义了一个具体数据源的绘制描述。

Parameters:

  • layer Object

    图层对象

  • before String (optional)

    已经存在图层的id,如果忽略该项,图层将会添加到最末尾。

Returns:

Map

this

removeLayer

(id)

删除地图样式中的一个图层。

Parameters:

  • id String

    要删除的图层id

Returns:

Map

this

Throws:

Error

如果没有对应的图层将会报错

getLayer

(id)

返回一个地图样式中的图层

Parameters:

  • id String

    图层id。

Returns:

?Object

返回对应的图层或undifined

setFilter

(layerfilter)

设置一个具体图层的过滤器。

map.setFilter('my-layer', ['==', 'name', 'USA']);

Example:

Parameters:

  • layer String

    图层的id

  • filter Array

Returns:

Map

this

setLayerZoomRange

(layerIdminzoommaxzoom)

设置一个图层的缩放区间如下:

map.setLayerZoomRange('my-layer', 2, 5);

Parameters:

  • layerId String

    图层id

  • minzoom Number

    最小缩放级别 (0-20).

  • maxzoom Number

    最大缩放级别 (0-20).

Returns:

Map

this

getFilter

(layer)

返回一个图层的过滤器

Parameters:

  • layer String

    图层id

Returns:

Array

图层的过滤器。

setPaintProperty

(layernamevalue)

设置图层的绘制样式

Example:

map.setPaintProperty('my-layer', 'fill-color', '#faafee');

Parameters:

  • layer String

    图层id

  • name String

    绘制样式的名称

  • value

    绘制样式的值

Returns:

Map

this

getPaintProperty

(layername)

返回一个图层的绘制样式值。

Parameters:

  • layer String

    图层id

  • name String

    图层绘制样式的名称。

Returns:

返回具体的图层样式值。

setLayoutProperty

(layername)

设置图层的一个具体样式值。

Example:

map.setLayoutProperty('my-layer', 'visibility', 'none');

Parameters:

  • layer String

    图层id

  • name String

    图层布局名称。

Returns:

Map

this

getLayoutProperty

(layername)

返回一个图层中的具体布局样式值。

Parameters:

  • layer String

    图层id

  • name String

    图层中布局样式名称。

Returns:

图层中布局样式值。

getContainer

()

返回地图的HTML容器。

Returns:

HTMLElement

地图容器。

getCanvasContainer

()

返回地图的 <canvas> 元素.

如果用户想添加非opengl的覆盖物,需要添加到该元素上面。

Returns:

HTMLElement

地图容器的<canvas>HTML容器。

getCanvas

()

返回一个<canvas> 元素.

Returns:

HTMLCanvasElement

返回<canvas> 元素。

loaded

()

返回地图是否完全加载完成的状态。

Returns:

Boolean

标志地图是否加载完成。

remove

()

清空所有的地图资源,包含web worker和dom元素。

addImage

(nameimageoptions)

向地图的样式中添加icon,该icon可用于 icon-image, background-pattern, fill-pattern line-pattern

Parameters:

  • name String

    图片名称。

  • image HTMLImageElement | ArrayBufferView

    图片

  • options Object (optional)

    如果image参数为 ArrayBufferView的时候,option为必须值

removeImage

(name)

删除用户添加的sprite图标

Parameters:

  • name String

    图标名称

loadImage

(urlcallback)

通过url加载一个外部的图片,用于Map#addImage,对应的地址需要支持跨域

Parameters:

  • url String

    图片路径,图片格式一般为png、jpg、webp

  • callback Function

    类型为 callback(error, data). 当地图加载完成之后会触发该回调.

getCenter

()
Inherited from Camera:

获取地图中心经纬度坐标

Returns:

LngLat

经纬度坐标对象

setCenter

(centereventData)
Inherited from Camera:

设置地图中心位置经纬度坐标

Example:

map.setCenter([-74, 38]);

Parameters:

  • center LngLatLike

    The centerpoint to set.

  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

panBy

(offsetoptionseventData)
Inherited from Camera:

沿着指定偏移距离进行偏移

Parameters:

  • offset Array

    平移地图的 xy的方向坐标

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

panTo

(lnglatoptionseventData)
Inherited from Camera:

通过动画的形式平移到某个具体位置。

Parameters:

  • lnglat LngLatLike

    要偏移的具体位置

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

getZoom

()
Inherited from Camera:

返回地图缩放等级

Returns:

Number

地图缩放等级

setZoom

(zoomeventData)
Inherited from Camera:

设置地图缩放级别

Example:

// zoom the map to 5 map.setZoom(5);

Parameters:

  • zoom Number

    地图缩放级别在(0-20)之间。

  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

zoomTo

(zoomoptionseventData)
Inherited from Camera:

通过动画的形式将地图变换到指定的缩放级别。

Parameters:

  • zoom Number

    要变换的目标缩放等级。

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

zoomIn

(optionseventData)
Inherited from Camera:

地图缩放级别加1.

Parameters:

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

zoomOut

(optionseventData)
Inherited from Camera:

地图缩放级别减1.

Parameters:

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

getBearing

()
Inherited from Camera:

返回地图旋转角

Returns:

Number

返回沿正北方向逆时针的旋转角度

setBearing

(bearingeventData)
Inherited from Camera:

设置地图的旋转角度

Example:

将地图旋转60度
map.setBearing(60);

Parameters:

  • bearing Number

    沿正北方向逆时针的旋转角度

  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

rotateTo

(bearingoptionseventData)
Inherited from Camera:

通过动画的方式旋转到具体的角度。

Parameters:

  • bearing Number

    沿正北方向逆时针的旋转角度

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

resetNorth

(optionseventData)
Inherited from Camera:

通过动画的方式变换当前地图旋转角度为0.

Parameters:

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

snapToNorth

(optionseventData)
Inherited from Camera:

捕捉正北方向。

Parameters:

  • options AnimationOptions (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

getPitch

()
Inherited from Camera:

返回地图俯仰角

Returns:

Number

当前地图远离屏幕的角度。

setPitch

(pitcheventData)
Inherited from Camera:

设置地图的俯仰角

Parameters:

  • pitch Number

    设置地图于屏幕之间的夹角(0-60).

  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

fitBounds

(boundsoptionseventData)
Inherited from Camera:

缩放和平移地图到指定的地理边界框。

Parameters:

  • bounds LngLatBoundsLike

    地图边界框。

  • options Object (optional)
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

jumpTo

(optionseventData)
Inherited from Camera:

采用立即变换的形式进行中心点、缩放级别、旋转角、倾角的改变。

Parameters:

  • options CameraOptions
  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

easeTo

(optionseventData)
Inherited from Camera:

采用动画的形式进行中心点、缩放级别、旋转角、倾角的改变。

Parameters:

  • options CameraOptions | AnimationOptions

    目标点和动画的选项信息。

  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

flyTo

(optionseventData)
Inherited from Camera:

通过动画的形式,并且在一个弧线上采用动画的形式进行中心点、缩放级别、旋转角、倾角的改变。

Example:

// 采用默认的方式进行飞行。
map.flyTo({center: [0, 0], zoom: 9});
// 采用flyTo选项进行飞行。
map.flyTo({
  center: [0, 0],
  zoom: 9,
  speed: 0.2,
  curve: 1,
  easing: function(t) {
    return t;
  }
});

Parameters:

  • options Object

    目标点和动画的选项信息。

  • eventData Object (optional)

    向任何事件监听器传播的数据.

Returns:

Map

this

stop

()
Inherited from Camera:

停止正在进行的动画渐变。

Returns:

Map

this

on

(typelistener)
Inherited from Evented:

添加一个具体的事件监听

Parameters:

  • type String
    事件类型
  • listener Function
    监听器

Returns:

Object
this

off

(typelistener)
Inherited from Evented:

注销一个事件监听

Parameters:

  • type String (optional)
    事件类型
  • listener Function (optional)
    监听器,如果忽略此项,所有此类型的事件将会全部删除。

Returns:

Object
this

once

(typelistener)
Inherited from Evented:

添加一个只执行一次的事件。

Parameters:

  • type String
    事件类型
  • listener Function
    事件监听器

Returns:

Object
this

fire

(typedata)
Inherited from Evented:

触发一个类型的事件

Parameters:

  • type String
    事件类型
  • data Object (optional)
    传输到其它监听器里面的数据

Returns:

Object
this

listens

(type)
Inherited from Evented:

返回一个布尔值标识是否有其它的监听器监听该事件。

Parameters:

  • type String
    时间类型

Returns:

Boolean
true 是否有监听器的标识位。

Properties

showTileBoundaries

Boolean

展示瓦片网格。

Default:false

showCollisionBoxes

Boolean

绘制地图元素框。

Default:false

repaint

Boolean

地图是否持续绘制

Default:false

Events

render

当地图已经在屏幕上绘制时触发,有以下几种条件

  • 地图位置、缩放级别、俯仰角、方位角改变
  • 地图样式改变
  • GeoJSON 数据源改变
  • 地图数据数据加载

Parameters:

  • data Object

    触发地图渲染事件

mouseout

当鼠标移出地图时触发。

Example:

{MapMouseEvent} data

Parameters:

mousedown

鼠标按下时触发。

Example:

{MapMouseEvent} data

Parameters:

mouseup

鼠标按键释放时触发。

Example:

{MapMouseEvent} data

Parameters:

mousemove

鼠标在地图内移动时触发。

Example:

{MapMouseEvent} data

Parameters:

touchstart

触摸开始时触发。

Example:

{MapTouchEvent} data

Parameters:

touchend

触摸结束时触发。

Example:

{MapTouchEvent} data

Parameters:

touchmove

触摸并移动时触发。

Example:

{MapTouchEvent} data

Parameters:

click

鼠标单击事件

Example:

{MapMouseEvent} data

Parameters:

dblclick

触发鼠标双击事件。

Example:

{MapMouseEvent} data

Parameters:

contextmenu

鼠标右键事件。

Example:

{MapMouseEvent} data

Parameters:

load

所有资源被加载完成后。

Parameters:

  • data Object

    触发地图加载完成事件。

movestart

地图开始移动事件

Example:

{MapMouseEvent | MapTouchEvent} data

Parameters:

move

地图移动进行事件

Example:

{MapMouseEvent | MapTouchEvent} data

Parameters:

moveend

地图移动结束事件

Example:

{MapMouseEvent | MapTouchEvent} data

Parameters:

error

任何错误minemap中的错误都会触发此事件。

Example:

{{error: {message: string}}} data

Parameters:

  • data Error

    触发一个错误事件。