Map Class
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
});
Index
Methods
- addControl
- resize
- getBounds
- setMaxBounds
- setMinZoom
- setMaxZoom
- project
- unproject
- queryRenderedFeatures
- querySourceFeatures
- setStyle
- getStyle
- addSource
- removeSource
- getSource
- moveLayer
- addLayer
- removeLayer
- getLayer
- setFilter
- setLayerZoomRange
- getFilter
- setPaintProperty
- getPaintProperty
- setLayoutProperty
- getLayoutProperty
- getContainer
- getCanvasContainer
- getCanvas
- loaded
- remove
- addImage
- removeImage
- loadImage
- getCenter
- setCenter
- panBy
- panTo
- getZoom
- setZoom
- zoomTo
- zoomIn
- zoomOut
- getBearing
- setBearing
- rotateTo
- resetNorth
- snapToNorth
- getPitch
- setPitch
- fitBounds
- jumpTo
- easeTo
- flyTo
- stop
- on
- off
- once
- fire
- listens
Properties
Methods
addControl
(controlposition)向地图中添加一个Control
控件,
Example:
control.addTo(this);
Parameters:
-
control
Control
要添加的
Control
控件。 -
position
Position
控件在地图中的位置。可选值有
'top-right'
,'top-left'
,'bottom-right'
, 和'bottom-left'
.
Returns:
this
setMaxBounds
(lnglatbounds)设置或清除地图地理边界框。
平移和缩放将会严格限制在该边界框之内,如果用户进行了平移或缩放操作,地图将会尽量匹配用户操作的结果,但是还是限制在该边界框内。
Parameters:
-
lnglatbounds
LngLatBoundsLike | null | undefined
设置地图的最大边界框 如果设定为
null
或者undefined
,地图最大边界框将会被删除。
Returns:
this
setMinZoom
(minZoom)设置地图的最小缩放级别 如果当前的缩放级别小于最新设定的最小缩放级别,那么地图将会将当前的缩放级别进行改变并与之匹配。
Parameters:
-
minZoom
?number
最小缩放级别 (0-20). 如果设定为
null
或undefined
,地图将会设定最小缩放级别为0。(i.e. sets it to 0).
Returns:
this
setMaxZoom
(setMaxZoom)设置地图的最小缩放级别 如果当前的缩放级别大于最新设定的最大缩放级别,那么地图将会将当前的缩放级别进行改变并与之匹配。
Parameters:
-
setMaxZoom
?number
最小缩放级别 (0-20). 如果设定为
null
或undefined
,地图将会设定最大缩放级别为20。(i.e. sets it to 20).
Returns:
this
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:
GeoJSON 返回一个GeoJSON数组。 feature objects.
querySourceFeatures
(sourceIDparams)获取数据源的地图数据信息。
Parameters:
-
sourceID
String
数据源的id。
-
params
Object
Returns:
getStyle
()返回当前的地图样式。
Returns:
地图样式对象。
addSource
(idsource)向地图样式中添加一个数据源。
Parameters:
-
id
String
添加一个唯一的字符串id,不能与其它数据源id冲突。
-
source
Object
Returns:
this
getSource
(id)返回一个指定的地图样式数据源。
Parameters:
-
id
String
数据源id
Returns:
返回数据源对象或null。
moveLayer
(IdbeforeId)图层移动层级
调整不同图层的前后位置顺序
Parameters:
-
Id
String
要移动的图层Id.
-
beforeId
String
(optional)
目标图层Id,即移动到该图层之上,如果忽略该参数,要移动的图层将会移动到最上层。
Returns:
this
addLayer
(layerbefore)向地图样式中添加一个图层
图层中定义了一个具体数据源的绘制描述。
Parameters:
-
layer
Object
图层对象
-
before
String
(optional)
已经存在图层的id,如果忽略该项,图层将会添加到最末尾。
Returns:
this
removeLayer
(id)删除地图样式中的一个图层。
Parameters:
-
id
String
要删除的图层id
Returns:
this
Throws:
如果没有对应的图层将会报错
getLayer
(id)返回一个地图样式中的图层
Parameters:
-
id
String
图层id。
Returns:
返回对应的图层或undifined
setFilter
(layerfilter)设置一个具体图层的过滤器。
map.setFilter('my-layer', ['==', 'name', 'USA']);
Example:
Parameters:
-
layer
String
图层的id
-
filter
Array
Returns:
this
setLayerZoomRange
(layerIdminzoommaxzoom)设置一个图层的缩放区间如下:
map.setLayerZoomRange('my-layer', 2, 5);
Parameters:
-
layerId
String
图层id
-
minzoom
Number
最小缩放级别 (0-20).
-
maxzoom
Number
最大缩放级别 (0-20).
Returns:
this
getFilter
(layer)返回一个图层的过滤器
Parameters:
-
layer
String
图层id
Returns:
图层的过滤器。
setPaintProperty
(layernamevalue)设置图层的绘制样式
Example:
map.setPaintProperty('my-layer', 'fill-color', '#faafee');
Parameters:
-
layer
String
图层id
-
name
String
绘制样式的名称
-
value
绘制样式的值
Returns:
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:
this
getLayoutProperty
(layername)返回一个图层中的具体布局样式值。
Parameters:
-
layer
String
图层id
-
name
String
图层中布局样式名称。
Returns:
图层中布局样式值。
getContainer
()返回地图的HTML容器。
Returns:
地图容器。
getCanvasContainer
()返回地图的 <canvas>
元素.
如果用户想添加非opengl的覆盖物,需要添加到该元素上面。
Returns:
地图容器的<canvas>
HTML容器。
getCanvas
()返回一个<canvas>
元素.
Returns:
返回<canvas>
元素。
loaded
()返回地图是否完全加载完成的状态。
Returns:
标志地图是否加载完成。
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)
. 当地图加载完成之后会触发该回调.
setCenter
(centereventData)设置地图中心位置经纬度坐标
Example:
map.setCenter([-74, 38]);
Parameters:
-
center
LngLatLike
The centerpoint to set.
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
panBy
(offsetoptionseventData)沿着指定偏移距离进行偏移
Parameters:
-
offset
Array
平移地图的
x
和y
的方向坐标 -
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
panTo
(lnglatoptionseventData)通过动画的形式平移到某个具体位置。
Parameters:
-
lnglat
LngLatLike
要偏移的具体位置
-
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
getZoom
()返回地图缩放等级
Returns:
地图缩放等级
setZoom
(zoomeventData)设置地图缩放级别
Example:
// zoom the map to 5 map.setZoom(5);
Parameters:
-
zoom
Number
地图缩放级别在(0-20)之间。
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
zoomTo
(zoomoptionseventData)通过动画的形式将地图变换到指定的缩放级别。
Parameters:
-
zoom
Number
要变换的目标缩放等级。
-
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
zoomIn
(optionseventData)地图缩放级别加1.
Parameters:
-
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
zoomOut
(optionseventData)地图缩放级别减1.
Parameters:
-
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
getBearing
()返回地图旋转角
Returns:
返回沿正北方向逆时针的旋转角度
setBearing
(bearingeventData)设置地图的旋转角度
Example:
将地图旋转60度
map.setBearing(60);
Parameters:
-
bearing
Number
沿正北方向逆时针的旋转角度
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
rotateTo
(bearingoptionseventData)通过动画的方式旋转到具体的角度。
Parameters:
-
bearing
Number
沿正北方向逆时针的旋转角度
-
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
resetNorth
(optionseventData)通过动画的方式变换当前地图旋转角度为0.
Parameters:
-
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
snapToNorth
(optionseventData)捕捉正北方向。
Parameters:
-
options
AnimationOptions
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
getPitch
()返回地图俯仰角
Returns:
当前地图远离屏幕的角度。
setPitch
(pitcheventData)设置地图的俯仰角
Parameters:
-
pitch
Number
设置地图于屏幕之间的夹角(0-60).
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
fitBounds
(boundsoptionseventData)缩放和平移地图到指定的地理边界框。
Parameters:
-
bounds
LngLatBoundsLike
地图边界框。
-
options
Object
(optional)
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
jumpTo
(optionseventData)采用立即变换的形式进行中心点、缩放级别、旋转角、倾角的改变。
Parameters:
-
options
CameraOptions
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
easeTo
(optionseventData)采用动画的形式进行中心点、缩放级别、旋转角、倾角的改变。
Parameters:
-
options
CameraOptions | AnimationOptions
目标点和动画的选项信息。
-
eventData
Object
(optional)
向任何事件监听器传播的数据.
Returns:
this
flyTo
(optionseventData)通过动画的形式,并且在一个弧线上采用动画的形式进行中心点、缩放级别、旋转角、倾角的改变。
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:
this
on
(typelistener)添加一个具体的事件监听
Parameters:
-
type
String
事件类型
-
listener
Function
监听器
Returns:
this
off
(typelistener)注销一个事件监听
Parameters:
-
type
String
(optional)
事件类型
-
listener
Function
(optional)
监听器,如果忽略此项,所有此类型的事件将会全部删除。
Returns:
this
once
(typelistener)添加一个只执行一次的事件。
Parameters:
-
type
String
事件类型
-
listener
Function
事件监听器
Returns:
this
fire
(typedata)触发一个类型的事件
Parameters:
-
type
String
事件类型
-
data
Object
(optional)
传输到其它监听器里面的数据
Returns:
this
listens
(type)返回一个布尔值标识是否有其它的监听器监听该事件。
Parameters:
-
type
String
时间类型
Returns:
true
是否有监听器的标识位。Properties
showTileBoundaries
Boolean展示瓦片网格。
Default:false
showCollisionBoxes
Boolean绘制地图元素框。
Default:false
repaint
Boolean地图是否持续绘制
Default:false
Events
render
当地图已经在屏幕上绘制时触发,有以下几种条件
- 地图位置、缩放级别、俯仰角、方位角改变
- 地图样式改变
- GeoJSON 数据源改变
- 地图数据数据加载
Parameters:
-
data
Object
触发地图渲染事件
load
所有资源被加载完成后。
Parameters:
-
data
Object
触发地图加载完成事件。
movestart
地图开始移动事件
Example:
{MapMouseEvent | MapTouchEvent} data
Parameters:
-
data
MapMouseEvent | MapTouchEvent
触发一个移动开始事件。
move
地图移动进行事件
Example:
{MapMouseEvent | MapTouchEvent} data
Parameters:
-
data
MapMouseEvent | MapTouchEvent
触发一个移动事件。
moveend
地图移动结束事件
Example:
{MapMouseEvent | MapTouchEvent} data
Parameters:
-
data
MapMouseEvent | MapTouchEvent
触发一个移动结束事件。
error
任何错误minemap中的错误都会触发此事件。
Example:
{{error: {message: string}}} data
Parameters:
-
data
Error
触发一个错误事件。