Maplibre GL JS 中文文档Maplibre GL JS 中文文档
介绍
插件
样式规范
API
案例
指南
介绍
插件
样式规范
API
案例
指南
  • 介绍
  • 插件
  • 样式规范
    • 弃用功能
    • 表达式
    • 字形
    • 图层
    • 光照
    • 投影
    • 根属性
    • 天空
    • 数据源
    • 精灵图
    • 状态
    • 地形
    • 过渡
    • 类型
  • API
    • media

      • 为 MapLibre GL JS 做贡献
    • Classes

      • AJAXError
      • Actor
      • AlphaImage
      • AttributionControl
      • BoxZoomHandler
      • CanonicalTileID
      • CanvasSource
      • CircleStyleLayer
      • ClickZoomHandler
      • CooperativeGesturesHandler
      • DEMData
      • Dispatcher
      • DoubleClickZoomHandler
      • DragPanHandler
      • DragRotateHandler
      • EdgeInsets
      • ErrorEvent
      • Event
      • Evented
      • FeatureIndex
      • FullscreenControl
      • GeoJSONFeature
      • GeoJSONSource
      • GlobeControl
      • Hash
      • HeatmapStyleLayer
      • ImageAtlas
      • ImageManager
      • ImageSource
      • KeyboardHandler
      • Layout<Props>
      • LngLat
      • LngLatBounds
      • LogoControl
      • Map
      • MapMouseEvent
      • MapTouchEvent
      • MapWheelEvent
      • Marker
      • MercatorCoordinate
      • NavigationControl
      • OverscaledTileID
      • Popup
      • RGBAImage
      • RasterDEMTileSource
      • RasterTileSource
      • ScaleControl
      • ScrollZoomHandler
      • Style
      • abstract StyleLayer
      • SubdivisionGranularityExpression
      • SubdivisionGranularitySetting
      • TapDragZoomHandler
      • TapZoomHandler
      • TerrainControl
      • ThrottledInvoker
      • Tile
      • TouchPanHandler
      • 抽象 TwoFingersTouchHandler
      • TwoFingersTouchPitchHandler
      • TwoFingersTouchRotateHandler
      • TwoFingersTouchZoomHandler
      • TwoFingersTouchZoomRotateHandler
      • VectorTileSource
      • VideoSource
      • WorkerPool
    • Enumerations

      • MessageType
      • ResourceType
      • TextFit
    • Functions

      • addProtocol()
      • addSourceType()
      • clearPrewarmedResources()
      • createTileMesh()
      • getMaxParallelImageRequests()
      • getRTLTextPluginStatus()
      • getVersion()
      • getWorkerCount()
      • getWorkerUrl()
      • importScriptInWorkers()
      • prewarm()
      • removeProtocol()
      • setMaxParallelImageRequests()
      • setWorkerCount()
      • setWorkerUrl()
    • Interfaces

      • ActorTarget
      • AttributeBinder
      • Bucket
      • CustomLayerInterface
      • Handler
      • IActor
      • IControl
      • MousePanHandler
      • MousePitchHandler
      • MouseRollHandler
      • MouseRotateHandler
      • Projection
      • Source
      • StyleImageInterface
      • Subscription
    • Type aliases

      • ActorMessage<T>
      • AddLayerObject
      • AddProtocolAction
      • Alignment
      • AnimationOptions
      • AroundCenterOptions
      • AttributionControlOptions
      • CalculateTileZoomFunction
      • CameraForBoundsOptions
      • CameraOptions
      • CameraUpdateTransformFunction()
      • CanvasSourceSpecification
      • CenterZoomBearing
      • CircleGranularity
      • ClusterIDAndSource
      • Complete<T>
      • Config
      • ControlPosition
      • Coordinates
      • CreateTileMeshOptions
      • CrossFaded<T>
      • CustomRenderMethod()
      • CustomRenderMethodInput
      • DEMEncoding
      • DashEntry
      • DistributiveKeys<T>
      • DistributiveOmit<T, K>
      • DragPanOptions
      • DragRotateHandlerOptions
      • EaseToOptions
      • ExpiryData
      • FeatureIdentifier
      • FitBoundsOptions
      • FlyToOptions
      • FullscreenControlOptions
      • GeoJSONFeatureDiff
      • GeoJSONFeatureId
      • GeoJSONSourceDiff
      • GeoJSONSourceOptions
      • GeoJSONWorkerOptions
      • GeoJSONWorkerSourceLoadDataResult
      • GeolocateControlOptions
      • GestureOptions
      • GetClusterLeavesParams
      • GetGlyphsParameters
      • GetGlyphsResponse
      • GetImagesParameters
      • GetImagesResponse
      • GetResourceResponse<T>
      • GlyphPosition
      • GlyphMetrics
      • GridKey
      • HandlerResult
      • IndicesType
      • JumpToOptions
      • Listener()
      • LngLatBoundsLike
      • LngLatLike
      • LoadGeoJSONParameters
      • LogoControlOptions
      • MapContextEvent
      • MapDataEvent
      • MapEventType
      • MapGeoJSONFeature
      • MapLayerEventType
      • MapLayerMouseEvent
      • MapLayerTouchEvent
      • MapLibreEvent
      • MapLibreZoomEvent
      • MapOptions
      • MapProjectionEvent
      • MapSourceDataType
      • MapSourceDataEvent
      • MapStyleDataEvent
      • MapStyleImageMissingEvent
      • MapTerrainEvent
      • MarkerOptions
      • MessageData
      • NavigationControlOptions
      • /api/type-aliases/Offset.html
      • OverlapMode
      • PaddingOptions
      • PluginState
      • PointLike
      • PointProjection
      • PopupOptions
      • PositionAnchor
      • PossiblyEvaluatedValue<T>
      • ProjectionData
      • ProjectionDataParams
      • QueryRenderedFeaturesOptions
      • QuerySourceFeatureOptions
      • RTLPluginStatus
      • Rect
      • RemoveSourceParams
      • RequestParameters
      • RequestResponseMessageMap
      • RequestTransformFunction()
      • RequireAtLeastOne<T>
      • ScaleControlOptions
      • Serialized
      • SerializedObject<S>
      • SerializedStructArray
      • SetClusterOptions
      • SourceClass()
      • SpriteOnDemandStyleImage
      • StyleGlyph
      • StyleImage
      • StyleImageData
      • StyleImageMetadata
      • StyleOptions
      • StyleSetterOptions
      • StyleSwapOptions
      • SymbolQuad
      • TileMesh
      • TileParameters
      • TileState
      • TransformStyleFunction()
      • Unit
      • UpdateImageOptions
      • UpdateLayersParamaeters
      • WorkerDEMTileParameters
      • WorkerTileParameters
      • WorkerTileResult
  • 案例
    • 3D建筑显示
    • 3D室内地图多边形挤出
    • 3D地形
    • 使用babylon.js添加3D模型
    • 使用three.js添加带阴影的3D模型
    • 在地形上使用three.js添加3D模型
    • 使用three.js添加3D模型
    • 添加默认标记
    • 添加云优化地理TIFF (COG)
    • 使用REST API添加DeckGL图层
    • 添加动画图像
    • 添加生成的图像
    • 动态生成并添加缺失图标到地图
    • 向地图添加可拉伸图片
    • 向地图添加图标
    • 动画线条
    • 绕点相机动画
    • 图像序列动画
    • 标记动画
    • 点动画
    • 沿路径点动画
    • 符号跟随鼠标动画
    • 更改版权信息位置
    • 自定义相机动画
    • 添加Canvas数据源
    • 使地图在点击符号时居中
    • 设置地面以上的中心点
    • 根据缩放级别更改建筑物颜色
    • 更改标签大小写
    • 检查是否支持WebGL
    • 使用自定义属性显示HTML集群
    • 创建和样式化集群
    • 使用按钮更改图层颜色
    • 添加等高线
    • 合作手势
    • 使用自定义标记图标
    • 添加自定义样式图层
    • 使用数据驱动属性设置线条样式
    • 禁用地图旋转
    • 禁用滚动缩放
    • 显示和样式丰富文本标签
    • 创建可拖动标记
    • 创建可拖动点
    • 绘制一个圆形
    • 使用备用图像
    • 使用addProtocol转换特性属性
    • 向多边形添加图案
    • 通过文本输入过滤符号
    • 通过切换列表过滤符号
    • 在图层内过滤
    • 将地图适配到边界框
    • 缓慢飞行到位置
    • 飞行到位置
    • 查看全屏地图
    • 使用游戏控制导航地图
    • 在标签下方添加新图层
    • 添加GeoJSON线条
    • 添加自定义标记
    • 添加GeoJSON多边形
    • 在地球仪上加载3D模型
    • 地球仪大气层
    • 简单自定义地球仪
    • 自定义瓦片地球仪
    • 在地球仪上显示填充挤出层
    • 使用矢量地图显示地球仪
    • 地球仪上缩放和行星大小的关系
    • 哈希路由
    • 地球仪上带地形高程的热力图
    • 创建热力图图层
    • 添加多方向山体阴影图层
    • 添加山体阴影图层
    • 创建悬停效果
    • 显示带地形高程的混合卫星地图
    • 显示非交互式地图
    • 跳转到一系列位置
    • 切换地图语言
    • 显示跨越180度子午线的线条
    • 使用表达式创建渐变线条
    • 添加实时数据
    • 实时更新地图要素
    • 查看本地GeoJSON文件(实验性)
    • 查看本地GeoJSON文件
    • 使用本地生成的表意文字
    • 定位用户位置
    • 细节层次控制
    • 添加栅格瓦片源
    • 使用Mapbox GL Draw绘制多边形
    • 支持从右到左文本
    • 使用 Terra-Draw 绘制几何图形
    • 测量距离
    • 获取鼠标指针坐标
    • 从单个GeoJSON源添加多个几何图形
    • 显示地图导航控件
    • 使用内边距偏移消失点
    • PMTiles 源和协议
    • 点击多边形显示信息
    • 点击显示弹出窗口
    • 悬停显示弹出窗口
    • 显示弹出窗口
    • 获取鼠标指针下的要素
    • 渲染世界副本
    • 限制地图平移到某个区域
    • 显示卫星地图
    • 基于滚动位置飞行到特定位置
    • 设置俯仰角和方位角
    • 为标记添加弹出窗口
    • 显示一个地图
    • 天空、雾和地形
    • 同步多个地图的移动
    • 创建时间轴滑块
    • 切换deck.gl图层
    • 切换交互功能
    • 可变标签放置
    • 可变偏移标签放置
    • 添加矢量瓦片源
    • 在地图上播放视频
    • 可视化人口密度
    • 添加WMS服务
    • 缩放至线要素
  • 指南
    • 优化MapLibre性能: 大型GeoJSON数据集的技巧
    • Leaflet迁移指南
    • Mapbox迁移指南
    • OpenLayers迁移指南

Marker

定义于: src/ui/marker.ts:32

Marker是一个可以被添加到地图上的HTML元素;它可以是一个DOM元素,或者作为一个SVG标记路径的字符串,或者是一个HTMLImageElement;带有CSS自定义属性--marker-color,默认为#3FB1CE;可以通过使用.maplibregl-marker类来为其设置样式;如需正确显示不需要定位的标记,该元素需要包含属性viewBox、width和height;

示例

// 创建一个标记
const marker = new Marker()
  .setLngLat([30.5, 50.5])
  .addTo(map);

// 设置标记颜色
marker.getElement().style.setProperty('--marker-color', '#FF0000');

参见

  • 使用标记添加自定义图标
  • 创建可拖动的标记

事件

事件 当标记被拖动时,将触发类型为Event的dragstart事件;

事件 当标记被拖动时,将触发类型为Event的drag事件;

事件 当标记拖动结束时,将触发类型为Event的dragend事件;

继承

  • Evented

构造函数

构造函数

new Marker(options?: MarkerOptions): Marker

定义于: src/ui/marker.ts:140

参数

参数类型描述
options?MarkerOptions标记的选项

返回

Marker

覆盖

Evented.constructor

方法

addClassName()

addClassName(className: string): void

定义于: src/ui/marker.ts:672

向标记元素添加CSS类;

参数

参数类型描述
classNamestring要添加到标记元素的非空CSS类名字符串

返回

void

示例

let marker = new Marker()
marker.addClassName('some-class')

addTo()

addTo(map: Map): this

定义于: src/ui/marker.ts:338

将标记添加到地图;

参数

参数类型描述
mapMap要添加的地图实例

返回

this

示例

let marker = new Marker()
  .setLngLat([30.5, 50.5])
  .addTo(map); // 添加标记到地图

getElement()

getElement(): HTMLElement

定义于: src/ui/marker.ts:419

返回标记的HTML元素;

返回

HTMLElement

标记的HTML元素

示例

// 将默认的标记颜色改为黄色
const marker = new Marker()
  .setLngLat([30.5, 50.5])
  .addTo(map);
marker.getElement().style.setProperty('--marker-color', '#FFFF00');

getLngLat()

getLngLat(): LngLat

定义于: src/ui/marker.ts:498

返回标记的地理位置;

返回

LngLat

标记的地理位置;


getOffset()

getOffset(): Point

定义于: src/ui/marker.ts:664

返回标记的偏移量;

返回

Point

标记的偏移量(以像素为单位);


getPitchAlignment()

getPitchAlignment(): Alignment

定义于: src/ui/marker.ts:845

返回标记的俯仰对齐方式;

返回

Alignment

标记的俯仰对齐方式;


getPopup()

getPopup(): Popup

定义于: src/ui/marker.ts:558

返回绑定到此标记的弹出窗口实例;

返回

Popup

返回绑定到此标记的弹出窗口实例;

示例

let marker = new Marker()
  .setLngLat([0, 0])
  .setPopup(new Popup().setHTML("<h1>Hello World!</h1>"))
  .addTo(map);

marker.getPopup(); // 返回附加到标记的弹出窗口实例

getRotation()

getRotation(): number

定义于: src/ui/marker.ts:809

返回标记的旋转角度;

返回

number

标记的旋转角度(顺时针,以度为单位);


getRotationAlignment()

getRotationAlignment(): Alignment

定义于: src/ui/marker.ts:827

返回标记的旋转对齐方式;

返回

Alignment

标记的旋转对齐方式;


isDraggable()

isDraggable(): boolean

定义于: src/ui/marker.ts:781

指示此标记是否可拖动;

返回

boolean

如果此标记是可拖动的,则为true;


listens()

listens(type: string): boolean

定义于: src/util/evented.ts:165

如果这个Evented实例或任何转发的Evented实例对指定类型有监听器,则返回true;

参数

参数类型描述
typestring事件类型

返回

boolean

如果指定的事件类型至少有一个注册的监听器,则为true,否则为false;

继承自

Evented.listens


off()

off(type: string, listener: Listener): Marker

定义于: src/util/evented.ts:90

移除先前注册的事件监听器;

参数

参数类型描述
typestring要移除监听器的事件类型
listenerListener要移除的监听器函数

返回

Marker

继承自

Evented.off


on()

on(type: string, listener: Listener): Subscription

定义于: src/util/evented.ts:73

为指定的事件类型添加监听器;

参数

参数类型描述
typestring要添加监听的事件类型
listenerListener事件触发时要调用的函数;监听器函数使用传递给fire的数据对象调用,该对象扩展了target和type属性

返回

Subscription

继承自

Evented.on


once()

once(type: string, listener?: Listener): Promise<any> | Marker

定义于: src/util/evented.ts:106

添加一个只会被调用一次的监听器到指定的事件类型;

在注册监听器后,首次触发事件时将调用该监听器;

参数

参数类型描述
typestring要监听的事件类型
listener?Listener首次触发事件时要调用的函数

返回

Promise&lt;any&gt; | Marker

如果未提供监听器,则返回this或Promise;

继承自

Evented.once


remove()

remove(): this

定义于: src/ui/marker.ts:348

从地图中移除标记;

返回

this

示例

let marker = new Marker().addTo(map);
marker.remove();

removeClassName()

removeClassName(className: string): void

定义于: src/ui/marker.ts:683

从标记元素中移除CSS类;

参数

参数类型描述
classNamestring要从标记元素中移除的非空CSS类名字符串

返回

void

示例

let marker = new Marker()
marker.removeClassName('some-class')

setDraggable()

setDraggable(shouldBeDraggable?: boolean): this

定义于: src/ui/marker.ts:770

设置标记的draggable属性和功能;

参数

参数类型描述
shouldBeDraggable?boolean开启/关闭拖动功能

返回

this


setEventedParent()

setEventedParent(parent?: Evented, data?: any): Marker

定义于: src/util/evented.ts:176

将此Evented实例触发的所有事件冒泡到此Evented的父实例;

参数

参数类型描述
parent?Evented
data?any

返回

Marker

继承自

Evented.setEventedParent


setLngLat()

setLngLat(lnglat: LngLatLike): this

定义于: src/ui/marker.ts:406

设置标记的地理位置并移动它;

参数

参数类型描述
lnglatLngLatLike描述标记应该位于何处的LngLat

返回

this

示例

创建一个新标记,设置经度和纬度,并将其添加到地图上

new Marker()
  .setLngLat([-65.017, -16.457])
  .addTo(map);

参见

  • 使用标记添加自定义图标
  • 创建可拖动的标记

setOffset()

setOffset(offset: PointLike): this

定义于: src/ui/marker.ts:651

设置标记的偏移量;

参数

参数类型描述
offsetPointLike相对于元素中心应用的偏移量(以像素为单位),作为PointLike对象。负值表示向左和向上

返回

this


setOpacity()

setOpacity(opacity?: string, opacityWhenCovered?: string): this

定义于: src/ui/marker.ts:856

设置标记的opacity和opacityWhenCovered属性。当不带参数调用时,将不透明度和覆盖时的不透明度重置为默认值;

参数

参数类型描述
opacity?string设置标记的不透明度属性
opacityWhenCovered?string设置标记的opacityWhenCovered属性

返回

this


setPitchAlignment()

setPitchAlignment(alignment?: Alignment): this

定义于: src/ui/marker.ts:836

设置标记的pitchAlignment属性;

参数

参数类型描述
alignment?Alignment设置标记的pitchAlignment属性。如果对齐方式为'auto',它将自动匹配rotationAlignment

返回

this


setPopup()

setPopup(popup?: Popup): this

定义于: src/ui/marker.ts:435

将弹出窗口绑定到标记;

参数

参数类型描述
popup?PopupPopup类的实例。如果未定义或为null,则取消设置此Marker实例上设置的任何弹出窗口

返回

this

示例

let marker = new Marker()
 .setLngLat([0, 0])
 .setPopup(new Popup().setHTML("<h1>Hello World!</h1>")) // 添加弹出窗口
 .addTo(map);

参见

将弹出窗口附加到标记实例


setRotation()

setRotation(rotation?: number): this

定义于: src/ui/marker.ts:800

设置标记的rotation属性;

参数

参数类型描述
rotation?number标记的旋转角度(顺时针,以度为单位),相对于其各自的Marker#setRotationAlignment设置

返回

this


setRotationAlignment()

setRotationAlignment(alignment?: Alignment): this

定义于: src/ui/marker.ts:818

设置标记的rotationAlignment属性;

参数

参数类型描述
alignment?Alignment设置标记的rotationAlignment属性,默认为'auto'

返回

this


setSubpixelPositioning()

setSubpixelPositioning(value: boolean): Marker

定义于: src/ui/marker.ts:485

通过传递布尔值来设置允许标记进行亚像素定位的选项;

参数

参数类型描述
valueboolean设置为true时,为标记启用亚像素定位

返回

Marker

示例

let marker = new Marker()
marker.setSubpixelPositioning(true);

toggleClassName()

toggleClassName(className: string): boolean

定义于: src/ui/marker.ts:700

根据元素当前是否具有该类,在标记元素上添加或移除给定的CSS类;

参数

参数类型描述
classNamestring要添加/移除的非空CSS类名

返回

boolean

如果类被移除则返回false,如果类被添加则返回true;

示例

let marker = new Marker()
marker.toggleClassName('toggleClass')

togglePopup()

togglePopup(): this

定义于: src/ui/marker.ts:540

根据弹出窗口的当前状态,打开或关闭绑定到标记的弹出窗口实例;

返回

this

示例

let marker = new Marker()
 .setLngLat([0, 0])
 .setPopup(new Popup().setHTML("<h1>Hello World!</h1>"))
 .addTo(map);

marker.togglePopup(); // 切换弹出窗口打开或关闭
Prev
MapWheelEvent
Next
MercatorCoordinate