SmartMapX JS

当前版本:smartmapx.js v2.4.2

SmartMapX JS是一个使用WEBGL技术渲染地图的高性能JavaScript地图开发SDK。

Map

Map对象代表页面上的地图,包含操作地图的一些相关的方法和属性,你能以程序方式修改地图,并在用户与之交互时触发事件。

可以指定一个div容器和其它选项,然后通过Smartmapx JS API初始化页面上的地图并返回你的Map对象。

Extends Evented.

new Map(options: Object)
参数
options(Object)
NameDescription
options.container(HTMLElement | string)smartmapx GL js将呈现地图的HTML元素或元素的字符串 id, 指定的元素必须没有子项。
options.minZoomnumber(default 0)地图的最小缩放级别(0-22)。
options.maxZoomnumber(default 22)地图的最大缩放级别(0-22)。
options.style(Object | string)?地图的smartmapx样式。这必须是符合smartmapx样式规范中描述的JSON对象模式, 或者返回该JSON对象的URL。

options.hashboolean(default false)当为 true时 ,地图的位置(缩放,中心纬度,中心经度,方位和坡度)将与页面URL的哈希段同步。例如, http://path/to/my/page.html#2.59/39.26/53.07/-24.1/60
options.interactiveboolean(default true)当为 false时 则没有鼠标,触摸或键盘监听器将被连接到地图上,因此它不会响应交互。
options.bearingSnapnumber(default 7)以度为单位的度量来确定地图的方位(旋转)何时会向北滑动。例如, bearingsnap 7,如果用户在北方7度的范围内旋转地图,则地图将被自动旋转到正北方向。
options.pitchWithRotateboolean(default true)当为 false时, 该地图的俯仰(倾斜)控制与拖动旋转的互动将被禁用。
options.attributionControlboolean(default true)当为 true时, AttributionControl 将被添加到地图上。
options.logoPositionstring(default 'bottom-left')表示smartmapx字标在地图上位置的字符串。有效的选项为 top-lefttop-rightbottom-leftbottom-right
options.failIfMajorPerformanceCaveatboolean(default false)当为 true时, smartmapx地图创建GL JS的表现会比预期结果差(即软件渲染器将使用),地图会创建失败。
options.preserveDrawingBufferboolean(default false)当为 true时, 映射的画布可以导出到PNG中使用。 map.getCanvas().toDataURL() 。当为 false时 为默认性能优化。
options.refreshExpiredTilesboolean(default true)当为 false时, 地图不会试图在每次HTTP到期时重新请求瓦片。
options.maxBoundsLngLatBoundsLike?如果设置,地图将被限制到给定的边界。
options.scrollZoom(boolean | Object)(default true)当为 true时, 启用了“滚动缩放”交互功能。一个 Object 值作为选项传递给 ScrollZoomHandler#enable
options.boxZoomboolean(default true)当为 true时, 启用了“box zoom”交互功能(请参阅 BoxZoomHandler )。
options.dragRotateboolean(default true)当为 true时, 启用了“拖动-旋转”交互功能(请参阅 DragRotateHandler )。
options.dragPanboolean(default true)当为 true时, 启用了“拖动移动”交互功能(请参阅 DragPanHanller )。
options.keyboardboolean(default true)当为 true时, 启用了“键盘快捷键”交互功能(请参阅 KeyboardHandler )。
options.doubleClickZoomboolean(default true)当为 true时, 启用了“双击缩放”交互功能(请参阅 DoubleClickZoomHandler )。
options.touchZoomRotate(boolean | Object)(default true)当为 true时, 启用了“捏转和缩放”交互功能。一个 Object 值作为选项传递给 TouchZoomRotateHandler#enable
options.trackResizeboolean(default true)当为 true时, 当浏览器窗口调整大小时,地图会自动调整大小。
options.centerLngLatLike(default [0,0])地图的初始地理中心点。如果 中心点不是在构造函数中指定的选项,则smartmapx GL JS会在地图的样式对象寻找它。如果样式中没有指定,则默认为 [ 0, 0 ]。 注:smartmapx GL使用经度、纬度坐标顺序(而不是纬度,经度)来匹配GeoJSON。
options.zoomnumber(default 0)地图的初始缩放级别。如果 zoom 未在构造函数选项中指定,则smartmapx GL JS将会在地图的样式对象寻找它。如果样式中没有指定,则默认为 0
options.bearingnumber(default 0)地图的初始方位(旋转),从正北向逆时针测量。如果 bearing 未在构造函数选项中指定,则smartmapx GL JS将会在地图的样式对象中寻找它,如果样式中没有指定,则默认为 0
options.pitchnumber(default 0)初始俯仰(倾斜)的地图,衡量度远离屏幕平面(0-60)。如果 pitch 是不是在构造函数中指定的选项,smartmapx GL JS会在地图的样式对象寻找它。如果样式中没有指定,则默认为 0
options.renderWorldCopiesboolean(default true)当为 true时, 放大时将绘制world多个副本。
options.maxTileCacheSizenumber(default null)存储在tile中给定源的最大高速缓存。如果省略,缓存将根据当前视口动态调整大小。
options.localIdeographFontFamilystring(default null)如果指定,则定义一个CSS字体系列,用于在“CJK统一表意文字”和“韩语音节”范围内本地覆盖字形的生成。在这些范围内,除了字体权重关键字(light / regular / medium / bold)外,地图样式中的字体设置将被忽略。此选项的目的是避免带宽密集型字形服务器请求。(请参阅 使用本地生成的文字库
options.transformRequestRequestTransformFunction(default null)在Map请求外部URL之前执行回调。该回调可用于修改url,设置标题或设置跨源请求的凭证属性。预计用返回一个对象 URL 属性和任选 headerscredentials 性能。
例子
var map = new smartmapx.Map({
  container: 'map',
  center: [116.39738, 39.90579],
  zoom: 13,
  style: style_object,
  hash: true,
  transformRequest: (url, resourceType)=> {
    if(resourceType == 'Source' && url.startsWith('http://myHost') {
      return {
       url: url.replace('http', 'https'),
       headers: { 'my-custom-header': true},
       credentials: 'include'  // Include cookies for cross-origin requests
     }
    }
  }
});
实例成员
addControl(control, position?, isAppendToTop)
removeControl(control)
resize()
getBounds()
getMaxBounds()
setMaxBounds(lnglatbounds)
setMinZoom(minZoom)
getMinZoom()
setMaxZoom(maxZoom)
getMaxZoom()
project(lnglat)
unproject(point)
on(type, listener)
on(type, layer, listener)
off(type, listener)
off(type, layer, listener)
queryRenderedFeatures(geometry?, options?)
querySourceFeatures(sourceID, parameters?)
setStyle(style, options?)
getStyle()
isStyleLoaded()
addSource(id, source)
isSourceLoaded(id)
areTilesLoaded()
removeSource(id)
getSource(id)
addImage(id, data, options)
removeImage(id)
loadImage(url, callback)
addLayer(layer, before?)
moveLayer(id, beforeId?)
removeLayer(id)
getLayer(id)
setFilter(layer, filter)
setLayerZoomRange(layerId, minzoom, maxzoom)
getFilter(layer)
setPaintProperty(layer, name, value)
getPaintProperty(layer, name)
setLayoutProperty(layer, name, value)
getLayoutProperty(layer, name)
setLight(light)
getLight()
getContainer()
getCanvasContainer()
getCanvas()
loaded()
remove()
showTileBoundaries
showCollisionBoxes
repaint
getCenter()
setCenter(center, eventData)
panBy(offset, options, eventData)
panTo(lnglat, options, eventData)
getZoom()
setZoom(zoom, eventData)
zoomTo(zoom, options, eventData)
zoomIn(options, eventData)
zoomOut(options, eventData)
getBearing()
setBearing(bearing, eventData)
rotateTo(bearing, options, eventData)
resetNorth(options, eventData)
snapToNorth(options, eventData)
getPitch()
setPitch(pitch, eventData)
fitBounds(bounds, options, eventData)
jumpTo(options, eventData)
easeTo(options, eventData)
flyTo(options, eventData)
isMoving()
stop()
事件
resize
remove
mousedown
mouseup
mousemove
click
dblclick
mouseenter
mouseleave
mouseover
mouseout
contextmenu
touchstart
touchend
touchmove
touchcancel
movestart
move
moveend
dragstart
drag
dragend
zoomstart
zoom
zoomend
rotatestart
rotate
rotateend
pitchstart
pitch
pitchend
boxzoomstart
boxzoomend
boxzoomcancel
webglcontextlost
webglcontextrestored
load
render
error
data
styledata
sourcedata
dataloading
styledataloading
sourcedataloading

accessToken

获取并设置地图的访问令牌

例子
smartmapx.accesstoken = myaccesstoken;

supported

测试浏览器是否支持Smartmapx GL JS

参数
options(Object?)
NameDescription
options.failIfMajorPerformanceCaveatboolean(default false)如果 true 当Smartmapx JS的性能比预期的要差很多(例如,将使用软件WebGL渲染器), 则该函数将返回false。
返回
boolean:
例子
smartmapx.supported();

version

Smartmapx JS的版本号。

setRTLTextPlugin

设置地图的RTL文本插件。支持从右到左书写的语言,像阿拉伯语和希伯来语等。

参数
pluginURL(string)URL指向smartmapx RTL文本插件源码。
callback(Function)如果有错误,则使用错误参数调用。
例子
smartmapx.setRTLTextPlugin('https://api.smartmapx.com/smartmapx-js/plugins/mapbox-gl-rtl-text/v0.1.1/mapbox-gl-rtl-text.js');

AnimationOptions

选择常见的涉及到动画的运动方法,比如Map#panByMap#easeTo控制动画的持续时间和缓动功能。所有属性都是可选的。

属性
duration(number): 动画的持续时间,以毫秒为单位。
easing(Function): 此函数在0-1的范围内取一个时间值,返回一个状态数值,其中0是初始状态,1是最终状态。
offset(PointLike): 在动画结束时相对于地图的目标中心偏移。
animate(boolean): 如果 false 不执行动画。

CameraOptions

Map#jumpTo,Map#easeTo,和Map#flyTo共同的属性。用于控制摄像机的所需位置,缩放,方位和俯仰。所有属性都是可选的,当省略属性时,该属性的当前摄像机值将保持不变。

属性
center(LngLatLike): 所需的中心。
zoom(number): 所需的缩放级别。
bearing(number): 所需的方位,以度为单位。方位正北表示指南针向上方向 例如: 指南针90度,地图方向向东
pitch(number): 所需的倾斜度,单位为度。
around(LngLatLike): 如果指定了缩放 zoomaround 将确定缩放中心周围的点。

PaddingOptions

在调用Map#fitBounds时设置填充的选项。此对象的所有属性都必须是非负整数。

属性
top(number): 从画布顶部开始像素填充。
bottom(number): 从画布底部开始像素填充。
left(number): 从画布左侧开始像素填充。
right(number): 从画布右侧开始像素填充。

RequestParameters

一个RequestParameters从Map.options.transformRequest回调中返回的对象。

属性
url(string): 要请求的URL。
headers(Object): 将随请求发送的请求头。
credentials(string): 'same-origin'|'include' 使用“include”发送包含跨源请求的Cookie。
空间元素

lnglatlnglatbounds矩形。Point表示屏幕坐标中的点。

LngLat

一个lnglat对象表示给定的经度和纬度坐标,单位为度。

smartmapx GL使用经度、纬度坐标(而不是纬度、经度)来匹配GeoJSON。

请注意,任何smartmapx GL方法接受lnglat对象作为参数或选项,也可以接受两个数字的Array,并执行隐式转换。这种灵活的类型被记录为lnglatlike

new LngLat(lng: number, lat: number)
参数
lng(number)经度,单位为度。
lat(number)纬度,单位为度。
例子
var ll = new smartmapx.LngLat(116.39738, 39.90579);
静态成员
convert(input)
实例成员
wrap()
toArray()
toString()
toBounds(radius)

LngLatLike

一个lnglat对象,表示经度和纬度的两个数字的数组,或带有lnglat属性的对象。

例子
var v1 = new smartmapx.LngLat(116.39738, 39.90579);
var v2 = [116.39738, 39.90579];

LngLatBounds

一个lnglatbounds对象,表示地理边界,由经度和纬度的西南和东北点定义。

如果没有向构造函数提供参数,则创建一个null边界框。

请注意,任何smartmapx GL方法接受lnglatbounds对象作为参数或选项,也可以接受Array两个lnglatlike构造,并将执行隐式转换。这种灵活的类型被记录为lnglatboundslike

new LngLatBounds(sw: LngLatLike?, ne: LngLatLike?)
参数
sw(LngLatLike?)边界框的西南角。
ne(LngLatLike?)边界框的东北角。
例子
var sw = new smartmapx.LngLat(116.268087, 40.037287);
var ne = new smartmapx.LngLat(116.301213, 40.056536);
var llb = new smartmapx.LngLatBounds(sw, ne);
静态成员
convert(input)
实例成员
setNorthEast(ne)
setSouthWest(sw)
extend(obj)
getCenter()
getSouthWest()
getNorthEast()
getNorthWest()
getSouthEast()
getWest()
getSouth()
getEast()
getNorth()
toArray()
toString()

LngLatBoundsLike

一个lnglatbounds对象,一个[sw,ne]顺序的lnglatlike对象数组[sw, ne]或者[west, south, east, north]顺序的数组的数组。

例子
var v1 = new smartmapx.LngLatBounds(
  new smartmapx.LngLat(116.268087, 40.037287),
  new smartmapx.LngLat(116.301213, 40.056536)
);
var v2 = new smartmapx.LngLatBounds([116.268087, 40.037287], [116.301213, 40.056536])
var v3 = [[116.268087, 40.037287], [116.301213, 40.056536]];

Point

一个Pointgeometry对象,它具有xy表示屏幕坐标的像素的属性。

PointLike

一个Point或一个由两个数字组成的数组,分别代表像素的xY屏幕坐标。

地图元素

控制,标记,和弹出添加新的用户界面元素的地图。

IControl

添加到地图上的交互式控件的接口。这是实现模型的规范:它不是一个出口的方法或类。

控件必须实现onAddonremove并且必须拥有一个元素,它通常是DIV元。使用smartmapx GL JS的默认控件样式,添加smartmapx Ctrl类到控件的节点。

例子
// Control implemented as ES6 class
class HelloWorldControl {
    onAdd(map) {
        this._map = map;
        this._container = document.createElement('div');
        this._container.className = 'smartmapx-ctrl';
        this._container.textContent = 'Hello, world';
        return this._container;
    }

    onRemove() {
        this._container.parentNode.removeChild(this._container);
        this._map = undefined;
    }
}

// Control implemented as ES5 prototypical class
function HelloWorldControl() { }

HelloWorldControl.prototype.onAdd = function(map) {
    this._map = map;
    this._container = document.createElement('div');
    this._container.className = 'smartmapx-ctrl';
    this._container.textContent = 'Hello, world';
    return this._container;
};

HelloWorldControl.prototype.onRemove = function () {
     this._container.parentNode.removeChild(this._container);
     this._map = undefined;
};
实例成员
getDefaultPosition()
onRemove(map)
onAdd(map)

一个NavigationControl控件包含缩放按钮和指南针。

new NavigationControl()
例子
var nav = new smartmapx.NavigationControl();
map.addControl(nav, 'top-left');

GeolocateControl

一个geolocatecontrol控制提供了一个按钮,使用浏览器的地理定位API在地图上找到用户。

不是所有的浏览器支持地理定位,一些用户可能会禁用该功能。对包括Chrome在内的现代浏览器的地理定位支持需要通过HTTPS提供站点。如果地理定位支持不可用,GeolocateControl将不可见。

应用缩放级别将取决于由该设备提供的地理定位精度。

有两种模式的geolocatecontrol。如果trackuserlocationfalse(默认)控件充当按钮,按下时按钮将设置映射的摄像机以定位用户位置。如果用户移动,地图将不会更新。这是最适合桌面的。如果trackuserlocationtrue控件充当切换按钮,当活跃用户的位置被积极监视更改时。在这种模式geolocatecontrol有三种状态:

  • 活动-地图的相机会随着用户位置的变化而自动更新,并将位置点保持在中心位置。
  • 被动-用户的位置点自动更新,但地图的相机没有更新。
  • 禁用

Extends Evented.

new GeolocateControl(options: Object?)
参数
options(Object?)
NameDescription
options.positionOptionsObject(default {enableHighAccuracy:false,timeout:6000})一个 Geolocation API PositionOptions 对象。
options.fitBoundsOptionsObject(default {maxZoom:15}) fitbounds 当地图被平移并放大到用户位置时使用的选项对象。默认是使用 maxzoom 15来限制地图在非常精确的位置放大多远。
options.trackUserLocationObject(default false)如果 true 的定位控制成为一个切换按钮,当活跃的地图将获得用户的位置更新,它的变化。
options.showUserLocationObject(default true)默认情况下,将在用户位置上的地图上显示一个点。设置 false 禁用。
例子
map.addControl(new smartmapx.GeolocateControl({
    positionOptions: {
        enableHighAccuracy: true
    },
    trackUserLocation: true
}));
事件
geolocate
error
trackuserlocationend
trackuserlocationstart

AttributionControl

一个attributioncontrol控件显示地图的attribution information

new AttributionControl(options: Object?)
参数
options(Object?)
NameDescription
options.compactboolean?如果 true 强制一个紧凑的属性,显示鼠标悬停的全部属性,或者 false 强制完全属性控制。默认情况下,响应归因会在地图宽度小于640像素时折叠。
例子
var map = new smartmapx.Map({attributionControl: false})
    .addControl(new smartmapx.AttributionControl({
        compact: true
    }));

ScaleControl

一个scalecontrol控件显示地图上的距离与地面上相应的距离之比。

new ScaleControl(options: Object?)
参数
options(Object?)
NameDescription
options.maxWidthnumber(default '150')比例控制的最大长度为像素。
options.unitstring(default 'metric')距离单位( 'imperial''metric''metric' )。
例子
map.addControl(new smartmapx.ScaleControl({
    maxWidth: 80,
    unit: 'imperial'
}));

FullscreenControl

一个fullscreencontrol控件包含一个切换地图和退出全屏模式按钮。

new FullscreenControl()
例子
map.addControl(new smartmapx.FullscreenControl());

MeasureControl

测距插件

new MeasureControl(options: Object)
参数
options(Object)参数
NameDescription
options.linestringObject(default {})空的GeoJSON线对象
options.circleRadiusNumber(default 3.5)线连接点圆的半径
options.circleColorstring(default '#fff')线连接点圆的颜色
options.lineColorstring(default '#44bff0')线的颜色
options.lineWidthNumber(default 3)线的宽度
options.lineCapstring(default 'round')线结束的类型
options.lineJoinstring(default 'round')线连接的类型

弹出组件。

Extends Evented.

new Popup(options: Object?)
参数
options(Object?)
NameDescription
options.closeButtonboolean(default true)如果 true 在弹出窗口的右上角显示一个关闭按钮。
options.closeOnClickboolean(default true)如果 true 当单击地图时弹出窗口将关闭。
options.anchorstring?一个字符串,指示弹出窗口相对于popup在地图指定点的位置。 Popup#setLngLat 。选项 'top''bottom''left''right''top-left''top-right''bottom-left , and 'bottom-right' 。如果未设置将动态设置确保popup弹出框落在map窗口的可视区域内 'bottom'
options.offset(number | PointLike | Object)?应用于弹出位置的像素偏移量,指定为:
  • 从弹出位置指定一个距离的单个数字。
  • PointLike指定一个常量偏移量
  • 一个对象Point具体的每个锚位置负偏移指示向左上偏移。
例子
var markerHeight = 50, markerRadius = 10, linearOffset = 25;
var popupOffsets = {
 'top': [0, 0],
 'top-left': [0,0],
 'top-right': [0,0],
 'bottom': [0, -markerHeight],
 'bottom-left': [linearOffset, (markerHeight - markerRadius + linearOffset) * -1],
 'bottom-right': [-linearOffset, (markerHeight - markerRadius + linearOffset) * -1],
 'left': [markerRadius, (markerHeight - markerRadius) * -1],
 'right': [-markerRadius, (markerHeight - markerRadius) * -1]
 };
var popup = new smartmapx.Popup({offset:popupOffsets})
  .setLngLat(e.lngLat)
  .setHTML("<h1>Hello World!</h1>")
  .addTo(map);
实例成员
addTo(map)
isOpen()
remove()
getLngLat()
setLngLat(lnglat)
setText(text)
setHTML(html)
setDOMContent(htmlNode)
事件
close

Marker

创建标记组件

new Marker(element: HTMLElement?, options: {offset: PointLike})
参数
element(HTMLElement?)作为标记使用的DOM元素(默认情况下创建div元素)
options({offset: PointLike})
NameDescription
options.offsetany以像素为单位的偏移量 PointLike 对象相对于元素中心应用。负数表示左和上。
例子
var marker = new smartmapx.Marker()
  .setLngLat([30.5, 50.5])
  .addTo(map);
实例成员
addTo(map)
remove()
getLngLat()
setLngLat(lnglat)
setRotate(rotate)
getElement()
setPopup(popup)
getPopup()
togglePopup()
用户交互

处理程序为地图-鼠标交互、触摸交互和其他手势添加不同类型的交互。

BoxZoomHandler

BoxZoomHandler允许用户缩放地图以适应矩形边界框。边界框通过单击时按住shift同时拖拽鼠标来定义。

new BoxZoomHandler(map: Map)
参数
map(Map)要添加处理程序的Smartmapx GL JS地图。
实例成员
isEnabled()
isActive()
enable()
disable()

ScrollZoomHandler

ScrollZoomHandler允许用户通过滚动缩放地图。

new ScrollZoomHandler(map: Map)
参数
map(Map)要添加处理程序的Smartmapx GL JS地图。
实例成员
isEnabled()
enable(options?)
disable()

DragPanHandler

DragPanHandler允许用户通过单击和拖动光标来平移地图。

new DragPanHandler(map: Map)
参数
map(Map)要添加处理程序的Smartmapx GL JS地图。
实例成员
isEnabled()
isActive()
enable()
disable()

DragRotateHandler

DragRotateHandler允许用户在按住鼠标右键同时拖动光标旋转地图,或按住ctrl键同时拖动光标旋转地图。

new DragRotateHandler(map: Map, options: Object?)
参数
map(Map)要添加处理程序的Smartmapx GL JS地图。
options(Object?)
NameDescription
options.bearingSnapnumber?以测量的程度来确定地图的方位(旋转)何时会向北滑动。
options.pitchWithRotatebool(default true)除了方位,控制地图的pitch。
实例成员
isEnabled()
isActive()
enable()
disable()

KeyboardHandler

KeyboardHandler允许用户使用下列快捷键缩放、旋转和平移地图:

  • =/+:将缩放级别提高1。
  • Shift-=/Shift-+:将缩放级别提高2。
  • :将缩放级别减少1。
  • Shift--:将缩放级别减少2。
  • 箭头键:平移100像素。
  • Shift +⇢增加旋转15度。
  • Shift +⇠减少旋转15度。
  • Shift +⇡把pitch提高10度。
  • Shift +⇣把pitch降低10度。
new KeyboardHandler(map: Map)
参数
map(Map)的smartmapx GL JS地图添加处理程序。
实例成员
isEnabled()
enable()
disable()

DoubleClickZoomHandler

这个DoubleClickZoomHandler允许用户双击一个点缩放地图。

new DoubleClickZoomHandler(map: Map)
参数
map(Map)的smartmapx GL JS地图添加处理程序。
实例成员
isEnabled()
isActive()
enable()
disable()

TouchZoomRotateHandler

这个TouchZoomRotateHandler允许用户通过在触摸屏上捏地图来缩放和旋转地图。

new TouchZoomRotateHandler(map: Map)
参数
map(Map)的smartmapx GL JS地图添加处理程序。
实例成员
isEnabled()
enable(options?)
disable()
disableRotation()
enableRotation()
数据源

源指定要在地图上呈现的地理特征。源对象可以从Map#getSource

GeoJSONSource

包含GeoJSON的数据源。(见地图样式规范有关选项的详细文档。)

例子
map.addSource('some id', {
    type: 'geojson',
    data: 'https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_10m_ports.geojson'
});
map.addSource('some id', {
   type: 'geojson',
   data: {
       "type": "FeatureCollection",
       "features": [{
           "type": "Feature",
           "properties": {},
           "geometry": {
               "type": "Point",
               "coordinates": [
                   -76.53063297271729,
                   39.18174077994108
               ]
           }
       }]
   }
});
map.getSource('some id').setData({
  "type": "FeatureCollection",
  "features": [{
      "type": "Feature",
      "properties": { "name": "Null Island" },
      "geometry": {
          "type": "Point",
          "coordinates": [ 0, 0 ]
      }
  }]
});
实例成员
setData(data)

VideoSource

包含视频的数据源。(见地图样式规范有关选项的详细文档。)

例子
// 添加数据
map.addSource('some id', {
   type: 'video',
   url: [
       'http://www.smartmapx.com/blog/assets/baltimore-smoke.mp4',
       'http://www.smartmapx.com/blog/assets/baltimore-smoke.webm'
   ],
   coordinates: [
       [-76.54, 39.18],
       [-76.52, 39.18],
       [-76.52, 39.17],
       [-76.54, 39.17]
   ]
});

// update
var mySource = map.getSource('some id');
mySource.setCoordinates([
    [-76.54335737228394, 39.18579907229748],
    [-76.52803659439087, 39.1838364847587],
    [-76.5295386314392, 39.17683392507606],
    [-76.54520273208618, 39.17876344106642]
]);

map.removeSource('some id');  // remove
实例成员
getVideo()
setCoordinates(coordinates)

ImageSource

包含图像的数据源。(见地图样式规范有关选项的详细文档。)

例子
// add to map
map.addSource('some id', {
   type: 'image',
   url: 'http://www.smartmapx.com/images/foo.png',
   coordinates: [
       [-76.54, 39.18],
       [-76.52, 39.18],
       [-76.52, 39.17],
       [-76.54, 39.17]
   ]
});

// update
var mySource = map.getSource('some id');
mySource.setCoordinates([
    [-76.54335737228394, 39.18579907229748],
    [-76.52803659439087, 39.1838364847587],
    [-76.5295386314392, 39.17683392507606],
    [-76.54520273208618, 39.17876344106642]
]);

map.removeSource('some id');  // remove
实例成员
setCoordinates(coordinates)

CanvasSource

包含HTML画布内容的数据源。(见地图样式规范有关选项的详细文档。)

例子
// add to map
map.addSource('some id', {
   type: 'canvas',
   canvas: 'idOfMyHTMLCanvas',
   animate: true,
   coordinates: [
       [-76.54, 39.18],
       [-76.52, 39.18],
       [-76.52, 39.17],
       [-76.54, 39.17]
   ]
});

// update
var mySource = map.getSource('some id');
mySource.setCoordinates([
    [-76.54335737228394, 39.18579907229748],
    [-76.52803659439087, 39.1838364847587],
    [-76.5295386314392, 39.17683392507606],
    [-76.54520273208618, 39.17876344106642]
]);

map.removeSource('some id');  // remove
实例成员
pause()
play()
getCanvas()
setCoordinates(coordinates)
事件

事件是Smartmapx js的事件系统。它有时在执行时被扩展。icontrols和其他扩展。

Evented

SmartMapX各个类中用到的事件类。

实例成员
on(type, listener)
off(type, listener)
once(type, listener)
fire(type, data?)
listens(type)

MapMouseEvent

属性
type(string): 事件类型。
target(Map): 引发事件的地图对象。
originalEvent(MouseEvent)
point(Point): 在地图上触发鼠标事件的像素坐标,相对于地图左上角。
lngLat(LngLat): 在地图上触发鼠标事件的地理位置。

MapTouchEvent

属性
type(string): 事件类型。
target(Map): 触发事件的地图对象。
originalEvent(TouchEvent)
point(Point): 触摸点的中心点相对于地图的像素坐标,相对于地图窗口左上角。
lngLat(LngLat): 触摸事件点中心在地图上的地理位置。
points(Array<Point>): 相对于触摸事件的touches属性的像素坐标数组。
lngLats(Array<LngLat>): 相对于触摸事件的touches属性的地理位置坐标数组。

MapBoxZoomEvent

属性
originalEvent(MouseEvent)
boxZoomBounds(LngLatBounds): 缩放操作的矩形区域。仅boxzoomend事件包含此属性。

MapDataEvent

mapdataevent对象被Map.event:dataMap.event:dataloading事件提供。dataType可能的值为:

  • 'source':与数据源相关联的非tile数据
  • 'style':地图使用的地图样式
属性
type(string): 事件类型。
dataType(string): 已更改的数据类型。可选值: 'source''style'
isSourceLoaded(boolean?): 如果事件的 dataTypesource 并且没有网络请求,则值为true。
source(Object?): 数据源, 如果事件的 dataTypesource
sourceDataType(string?): 如果事件的 dataTypesource ,表示事件相关的数据已被接收或更改。可能的值为 metadatacontent
tile(Object?): 加载或更改的瓦片,如果事件的 dataTypesource ,加载瓦片数据时才包含该属性。
coord(Coordinate?): 瓦片的地理坐标,如果事件的 dataTypesource ,加载瓦片数据时才包含该属性。