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迁移指南

MapLibre GL JS 示例概览

MapLibre GL JS提供了丰富的示例,展示如何使用该库创建各种交互式地图功能;以下是按类别组织的示例列表;

3D及地形相关

3D建筑显示

使用挤出效果显示建筑物高度的3D效果;

3D室内地图多边形挤出

使用fill-extrude-height属性创建3D室内地图;

3D地形

超越传统山体阴影,展示真实三维高程;

使用babylon.js添加3D模型

使用自定义样式图层和babylon.js向地图添加3D模型;

使用three.js添加带阴影的3D模型

使用three.js添加带有阴影效果的3D模型;

在地形上使用three.js添加3D模型

使用自定义样式图层和three.js将3D模型添加到带有地形的地图上;

使用three.js添加3D模型

使用自定义样式图层和three.js向地图添加3D模型;

标记和图标

添加默认标记

向地图添加默认标记;

添加COG栅格数据源

添加外部云优化GeoTIFF(COG)作为数据源;

使用REST API创建deck.gl图层

从REST API创建deck.gl叠加图层;

添加动画图标到地图

使用Canvas API在运行时生成并添加动画图标到地图;

添加生成的图标到地图

在运行时生成并添加图标到地图;

生成并添加缺失的图标到地图

在运行时动态生成缺失的图标并添加到地图;

添加可拉伸图像到地图

使用可拉伸图像作为文本背景;

向地图添加图标

从外部URL添加图标到地图,并在符号图层中使用;

动画效果

线条动画

通过每帧更新GeoJSON源来实现线条动画;

绕点相机动画

使相机围绕一个点进行动画;

图像序列动画

使用一系列图像源创建动画;

标记动画

通过每帧更新位置来实现标记位置动画;

点动画

通过每帧更新GeoJSON源来实现点位置动画;

沿路径点动画

使用Turf沿线路平滑地为点设置动画;

跟随鼠标的符号动画

实现符号跟随鼠标移动的动画;

地图控件和界面

更改归属信息默认位置

初始化地图时将归属信息放置在左上角位置;

自定义相机动画

使用AnimationOptions自定义相机动画;

添加画布源

向地图添加画布源;

点击符号居中地图

使用事件和flyTo使点击的符号居中显示;

设置地面上方中心点

设置地面上方的中心点;

基于缩放级别变更建筑颜色

使用插值表达式实现建筑图层的平滑颜色渐变;

更改标签大小写

使用upcase和downcase表达式更改标签大小写;

检查WebGL支持

检查浏览器是否支持WebGL;

聚类和数据可视化

使用自定义属性显示HTML聚类

使用HTML标记和自定义属性表达式扩展聚类功能;

创建和样式化聚类

使用MapLibre GL JS内置函数将点可视化为聚类;

使用按钮更改图层颜色

使用setPaintProperty更改图层的填充颜色;

添加等高线

从栅格高程模型(DEM)数据源添加等高线到地图;

交互和控制

协作手势

启用特定语言的协作手势,了解其在全屏模式下的行为;

使用标记添加自定义图标

向地图添加自定义标记图标;

添加自定义样式图层

使用自定义样式图层渲染自定义WebGL内容;

使用数据驱动属性样式化线条

使用线条颜色的数据表达式创建可视化效果;

禁用地图旋转

防止用户旋转地图;

禁用滚轮缩放

防止滚轮缩放地图;

显示和样式化富文本标签

使用format表达式同时以英语和本地语言显示国家标签;

创建可拖动标记

在地图上拖动标记到新位置,并在显示中填充其坐标;

创建可拖动点

在地图上拖动点到新位置,并在显示中填充其坐标;

绘制圆形

使用Turf.js绘制半径来近似表示位置;

高级特性

使用后备图像

当请求的图像不可用时,使用coalesce表达式显示另一个图像;

使用addProtocol转换要素属性

使用纯JavaScript的addProtocol反转国家名称;

向多边形添加图案

使用fill-pattern从重复图像图案绘制多边形;

使用文本输入过滤符号

通过在文本输入中键入来按图标名称过滤符号;

通过切换列表过滤符号

基于数据中的属性值过滤符号集;

图层内过滤

使用setFilter()基于用户输入过滤图层;

将地图适配到边界框

将地图适配到特定区域,无论地图的像素大小如何;

缓慢飞行到位置

使用flyTo和flyOptions缓慢缩放到位置;

飞行到位置

使用flyTo平滑地在位置之间插值;

查看全屏地图

在当前视图和全屏模式之间切换;

使用游戏式控制导航地图

使用键盘方向键以游戏式控制移动地图;

地理编码和GeoJSON

使用Nominatim地理编码

使用Nominatim和maplibre-gl-geocoder插件进行地理编码;

在标签下方添加新图层

使用addLayer的第二个参数在标签下方添加图层;

添加GeoJSON线

使用addSource添加GeoJSON线到地图,然后使用addLayer的绘制属性样式化它;

绘制GeoJSON点

将GeoJSON集合中的点绘制到地图上;

添加GeoJSON多边形

使用填充图层类型样式化多边形;

地球和全球投影

使用three.js向球体添加3D模型

使用自定义样式图层和three.js向球体添加3D模型;

显示带有大气层的球体

显示带有大气层效果的球体;

在球体上添加简单自定义图层

使用自定义图层在球体上绘制简单WebGL内容;

在球体上添加带图块的自定义图层

使用自定义图层在球体上显示使用自定义WebGL着色器绘制的任意图块;

显示带填充挤出图层的球体

显示带有填充挤出图层的球体;

显示带矢量地图的球体

显示带有矢量地图的球体;

球体上的缩放和行星大小关系

解释球体投影下缩放和行星大小的关系,以及如何在更改地图中心和缩放时考虑这一点;

路由和状态管理

哈希路由

使用哈希路由将视口状态保存在URL中;

热力图和特殊图层

在带地形高程的球体上创建热力图层

在带有地形高程的球体上创建热力图层;

创建热力图层

使用热力图层按位置可视化地震频率;

添加多方向山体阴影图层

添加具有多个光源的山体阴影图层;

添加山体阴影图层

添加简单的山体阴影图层;

创建悬停效果

使用事件和要素状态创建每个要素的悬停效果;

混合和特殊地图类型

显示带地形高程的混合卫星地图

显示带有地形高程的混合卫星地图;

显示非交互式地图

禁用交互功能创建静态地图;

跳转到一系列位置

使用jumpTo函数展示多个位置;

更改地图语言

使用setLayoutProperty动态切换语言;

显示跨越180度子午线的线

使用GeoJSON源绘制跨越180度子午线的线;

使用表达式创建渐变线

使用线条渐变绘制属性和表达式可视化线条起点的距离;

实时数据和本地文件

添加实时数据

使用实时GeoJSON数据流在地图上移动符号;

实时更新要素

通过更新数据实时更改地图上的现有要素;

查看本地GeoJSON(实验性)

使用实验性文件系统访问API查看本地GeoJSON;

查看本地GeoJSON

无需服务器上传查看本地GeoJSON;

使用本地生成的表意文字

设置localIdeographFontFamily覆盖用于显示CJK(中文、日文和韩文)字符的字体;

地理定位和地形

定位用户

使用GeolocateControl地理定位用户并跟踪其在地图上的当前位置;

细节级别控制

修改高俯仰角下细节级别的行为;

添加栅格瓦片源

向地图添加第三方栅格源;

绘图和测量工具

使用mapbox-gl-draw绘制多边形

使用mapbox-gl-draw绘制多边形,并使用Turf.js计算其面积;

添加对从右到左脚本的支持

使用mapbox-gl-rtl-text插件支持阿拉伯语和希伯来语等从右到左的语言;

使用terra-draw绘制几何图形

使用maplibre-gl-terradraw在地图上绘制点、线或多边形形式的几何图形;

测量距离

点击地图上的点创建线条,使用turf.length测量距离;

获取鼠标指针坐标

用像素坐标和经纬度坐标显示悬停位置;

数据源和图层管理

从一个GeoJSON源添加多个几何图形

从同一GeoJSON源添加多边形和圆形图层;

显示地图导航控件

向地图添加缩放和旋转控件;

使用填充偏移消失点

偏移地图的中心或消失点,减少浮动元素显示在地图上时的失真;

PMTiles源和协议

使用PMTiles插件和协议呈现地图;

弹出框和信息显示

点击时显示多边形信息

当用户点击多边形时,显示包含更多信息的弹出框;

点击时显示弹出框

当用户点击符号时,显示包含更多信息的弹出框;

悬停时显示弹出框

当用户悬停在自定义标记上时,显示包含更多信息的弹出框;

显示弹出框

向地图添加弹出框;

获取鼠标指针下的要素

使用queryRenderedFeatures显示悬停地图元素的属性;

地图行为和限制

渲染世界副本

使用setRenderWorldCopies在渲染单个世界和多个世界副本之间切换;

限制地图平移到特定区域

通过设置maxBounds防止地图被平移到不同位置;

显示卫星地图

显示卫星栅格底图;

基于滚动位置飞行到位置

向下滚动故事,地图将飞行到章节位置;

设置俯仰和方位

使用俯仰和方位相机选项初始化地图;

将弹出框附加到标记实例

将弹出框附加到标记并在点击时显示;

显示地图

使用MapLibre GL JS在HTML元素中初始化地图;

天空、雾和地形

允许更改天空、雾和地平线颜色和混合;

多地图和图层切换

同步多个地图的移动

使用sync-move插件同步MapLibre GL JS地图;

创建时间滑块

使用范围滑块可视化地震;

切换deck.gl图层

使用maplibre切换deck.gl图层;

切换交互

启用或禁用地图上的UI处理程序;

标签和文本

可变标签放置

使用text-variable-anchor允许高优先级标签移动位置以保持在地图上;

带偏移的可变标签放置

使用text-variable-anchor-offset允许高优先级标签移动位置以保持在地图上;

数据源类型

添加矢量瓦片源

向地图添加矢量源;

添加视频

在卫星栅格底图上显示视频;

可视化人口密度

使用变量绑定表达式计算和显示人口密度;

添加WMS源

使用addSource的tiles选项添加外部Web地图服务栅格图层;

适配到LineString的边界

获取LineString的边界;

Prev
API
Next
指南