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