4.2 KiB
title | date | author | tags | categories | ||
---|---|---|---|---|---|---|
mbstyle (Mapbox 样式规范) | 2023-10-14 | ac |
|
|
Mapbox style document 是一种基于
JSON
的语言,它定义了地图的视觉外观、绘制的数据以及绘制时要使用的顺序数据和样式,Mapbox
样式的文档是SLD
的替代品。
1.简介
Mapbox
样式是定义地图视觉外观的文档:绘制哪些数据、绘制数据的顺序以及绘制数据时如何设置数据样式。
样式文档结构
样式文档是具有特定根级别和嵌套属性的JSON对象,规范定义并描述了这些属性。
Mapbox 样式由一组根属性组成,其中一些描述单个全局属性,其中一些包含嵌套属性。
某些根属性(例如version
、name
和metadata
)对地图的外观或行为没有任何影响,但提供与地图相关的重要描述信息。其他要素(如layers
和sources
)至关重要,它们决定哪些地图要素将出现在您的地图上以及它们的外观。某些属性(如center
、zoom
、pitch
和bearing
)为地图渲染器提供了一组在初始显示地图时使用的默认值。
2. 规范参考
2.1 根级别属性
Mapbox 样式的根级别属性指定地图的图层、图块源、其他资源,以及在其他地方未指定时初始相机位置的默认值。
{
// 必填项
"version": 8,// 样式规范的版本号,必须是8
"sources": {...},// 数据源规范。
"layers": [...],// 图层将按照该数组的顺序绘制。
// 选填项
"name": "Mapbox Streets",//样式名称
"sprite": "mapbox://sprites/mapbox/streets-v8",
"glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
"bearing": 29,// 水平方位角,单位:度
"center": [ -73.9749, 40.7736 ], // 默认地图中心点
"fog": {},// 雾,也可以叫大气层,用于global的三维效果
"light": { // 全局的光源
"anchor": "viewport",
"color": "white",
"intensity": 0.4
},
"metadata": {},// 元数据,自定义属性可以放这里
"pitch": ,// 单位为度,默认为0
"projection": ,//d
}
Layer 属性
-
id
:图层标识 -
type
:可选值fill、line、symbol、circle、heatmap、fill-extrusion、raster、hillshade、background、skytype属性指定图层要渲染的类型:
fill:带有可选的边界的填充面
line:线类型
symbol:图标点或label标签图层
circle:填充圆
heatmap:热力图
fill-extrusion: 3D 面
raster:栅格影像图层,如WSM|WMTS|单张图片
hillshade:地形数据
background:图层的背景色
sky:一个围绕地图的球形圆顶,在所有其他图层后面渲染。
Layers有两个子属性决定图层layer的渲染:layout
和 paint
。
layout
属性出现在图层的"layout"
对象中。它们在渲染过程的早期应用,并定义该层的数据如何传递到 GPU。该属性的更改需要异步“layout”步骤。paint
属性 稍后在渲染过程中应用,出现在图层的"paint"
对象中。属性的更改成本低廉并且同步发生。
参考文章
[1] Mapbox Style Specification https://docs.mapbox.com/style-spec/guides/
[2] mbstyle样式 — GeoServer 2.24.x User Manual (osgeo.cn) https://www.osgeo.cn/geoserver-user-manual/styling/mbstyle/index.html