根属性
MapLibre样式的根级属性指定了地图的图层、瓦片源和其他资源,以及在其他地方未指定时初始相机位置的默认值;
{
"version": 8,
"name": "MapLibre Demo Tiles",
"sprite": "https://demotiles.maplibre.org/styles/osm-bright-gl-style/sprite",
"glyphs": "https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",
"sources": {... },
"layers": [...]
}
version
必需的枚举值。
样式规范版本号。必须为8;
version: 8
name
可选字符串。
样式的人类可读名称;
name: "Bright"
metadata
可选。
与样式表一起跟踪的任意属性,但不影响渲染。属性应加前缀以避免冲突,如'maplibre:';
metadata: {
"styleeditor:slimmode": true,
"styleeditor:comment": "Style generated 1677776383",
"styleeditor:version": "3.14.159265",
"example:object": {
"String": "one",
"Number": 2,
"Boolean": false
}
}
center
可选数组。
默认地图中心的经度和纬度。仅当地图未通过其他方式定位(例如地图选项或用户交互)时,样式中心才会被使用;
center: [-73.9749, 40.7736]
centerAltitude
可选数值。
默认地图中心高度,以海平面以上米为单位。样式中心高度定义了相机所看的高度,仅当地图未通过其他方式定位(例如地图选项或用户交互)时才会被使用;
centerAltitude: 123.4
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 5.0.0 | ❌ (#2980) | ❌ (#2980) |
zoom
可选数值。
默认缩放级别。仅当地图未通过其他方式定位(例如地图选项或用户交互)时,样式缩放才会被使用;
zoom: 12.5
bearing
可选数值。单位为度。默认为0
。
默认方位角,以度为单位。方位角是指"向上"的指南针方向;例如,90°的方位角将地图定向为东向上。仅当地图未通过其他方式定位(例如地图选项或用户交互)时,此值才会被使用;
bearing: 29
pitch
可选数值。单位为度。默认为0
。
默认倾斜角,以度为单位。零度垂直于表面,直视地图,而较大的值如60度则向前看向地平线。仅当地图未通过其他方式定位(例如地图选项或用户交互)时,样式倾斜角才会被使用;
pitch: 50
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
0-60度 | 0.8.0 | 1.0.0 | 1.0.0 |
0-85度 | 2.0.0 | ❌ (#1909) | ❌ (#1909) |
0-180度 | 5.0.0 | ❌ (#1909) | ❌ (#1909) |
roll
可选数值。单位为度。默认为0
。
默认翻滚角,以度为单位。翻滚角围绕相机视线轴按逆时针方向测量。仅当地图未通过其他方式定位(例如地图选项或用户交互)时,样式翻滚角才会被使用;
roll: 45
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 5.0.0 | ❌ (#2941) | ❌ (#2941) |
state
可选状态。默认为{}
。
用于在使用global-state表达式时定义默认值的对象;
state: {
"chargerType": {"default": ["CCS", "CHAdeMO", "Type2"]},
"minPreferredChargingSpeed": {"default": 50}
}
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | ❌ (#4964) | ❌ (#3302) | ❌ (#3302) |
light
可选光照。
全局光源;
light: {"anchor": "viewport", "color": "white", "intensity": 0.4}
sky
可选天空。
地图的天空配置。**注意:**这个定义仍在实验中,正在maplibre-gl-js中开发;
sky: {
"sky-color": "#199EF3",
"sky-horizon-blend": 0.5,
"horizon-color": "#ffffff",
"horizon-fog-blend": 0.5,
"fog-color": "#0000ff",
"fog-ground-blend": 0.5,
"atmosphere-blend": [
"interpolate",
["linear"],
["zoom"],
0,
1,
10,
1,
12,
0
]
}
projection
可选投影。
投影配置;
projection: {
"type": [
"interpolate",
["linear"],
["zoom"],
10,
"vertical-perspective",
12,
"mercator"
]
}
terrain
可选地形。
地形配置;
terrain: {"source": "raster-dem-source", "exaggeration": 0.5}
sources
必需的数据源。
数据源指定地图应显示哪些数据。使用type
属性指定源的类型。仅添加源不足以使数据显示在地图上,因为源不包含样式细节,如颜色或宽度。图层引用源并赋予其视觉表示。这使得可以以不同方式样式化同一源,例如在高速公路图层中区分不同类型的道路;
瓦片源(矢量和栅格)必须根据TileJSON规范指定其详细信息;
sources: {
"maplibre-demotiles": {
"type": "vector",
"url": "https://demotiles.maplibre.org/tiles/tiles.json"
},
"maplibre-tilejson": {
"type": "vector",
"url": "http://api.example.com/tilejson.json"
},
"maplibre-streets": {
"type": "vector",
"tiles": [
"http://a.example.com/tiles/{z}/{x}/{y}.pbf",
"http://b.example.com/tiles/{z}/{x}/{y}.pbf"
],
"maxzoom": 14
},
"wms-imagery": {
"type": "raster",
"tiles": [
"http://a.example.com/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&width=256&height=256&layers=example"
],
"tileSize": 256
}
}
sprite
可选精灵图。
{id: 'my-sprite', url: 'https://example.com/sprite'}
对象数组。每个对象应代表一个唯一的URL,用于加载精灵图,以及一个唯一的ID,用作从该精灵图引用图像时的前缀(即'my-sprite:image')。所有URL内部都会扩展以加载.json和.png文件。如果id
字段等于'default',则省略前缀(只使用'image'而不是'default:image')。所有ID和URL必须唯一。为了向后兼容,也可以提供一个表示URL的单个字符串,用于加载精灵图。在这种情况下,图像不会添加前缀;
sprite: "https://demotiles.maplibre.org/styles/osm-bright-gl-style/sprite"
glyphs
可选字符串。
用于加载PBF格式的符号集的URL模板;
如果设置了此属性,则text-field
布局属性中的任何文本都将根据此属性指定的URL上的字形,使用text-font
布局属性命名的字体堆栈显示。否则,字体将由text-font
属性基于本地环境确定;
URL必须包括:
{fontstack}
- 请求字形时,此令牌将被符号图层的text-font
属性中指定的字体堆栈的逗号分隔列表替换。{range}
- 请求字形时,此令牌将被256个Unicode码点的范围替换。例如,要加载Unicode基本拉丁语和基本拉丁语-1补充块的字形,范围将为0-255。实际加载的范围是在运行时根据需要显示的文本确定的;
URL必须是绝对的,包含方案、权限和路径组件;
glyphs: "https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf"
SDK支持 | MapLibre GL JS | MapLibre Native Android | MapLibre Native iOS |
---|---|---|---|
基本功能 | 0.0.16 | 0.1.1 | 0.1.0 |
省略以使用本地字体 | ❌ (#3302) | ❌ (#165) | ❌ (#165) |
transition
可选过渡。
全局过渡定义,用作属性间的默认值,在没有设置特定属性的过渡时,用于一个值到下一个值之间的过渡时序。基于碰撞的符号淡入淡出独立于样式的transition
属性控制;
transition: {"duration": 300, "delay": 0}
layers
必需的数组。
样式的layers
属性列出了该样式中可用的所有图层。图层类型由type
属性指定,必须是以下类型之一:background
、fill
、line
、symbol
、raster
、circle
、fill-extrusion
、heatmap
、hillshade
、color-relief
;
除了background
类型的图层外,每个图层都需要引用一个源。图层从源获取数据,可选择性地过滤要素,然后定义这些要素的样式;
layers: [
{
"id": "coastline",
"source": "maplibre",
"source-layer": "countries",
"type": "line",
"paint": {"line-color": "#198EC8"}
}
]