meface/docs/article/gis/geoserver/mbstyle.md

4.2 KiB
Raw Blame History

title date author tags categories
mbstyle (Mapbox 样式规范) 2023-10-14 ac
Mapbox GL
GIS

Mapbox style document 是一种基于JSON的语言,它定义了地图的视觉外观、绘制的数据以及绘制时要使用的顺序数据和样式,Mapbox样式的文档是SLD的替代品。

1.简介

Mapbox 样式是定义地图视觉外观的文档:绘制哪些数据、绘制数据的顺序以及绘制数据时如何设置数据样式

样式文档结构

样式文档是具有特定根级别和嵌套属性的JSON对象,规范定义并描述了这些属性。

Mapbox 样式由一组根属性组成,其中一些描述单个全局属性,其中一些包含嵌套属性。

某些根属性(例如versionnamemetadata)对地图的外观或行为没有任何影响,但提供与地图相关的重要描述信息。其他要素(如layerssources)至关重要,它们决定哪些地图要素将出现在您的地图上以及它们的外观。某些属性(如centerzoompitchbearing)为地图渲染器提供了一组在初始显示地图时使用的默认值。

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、sky

    type属性指定图层要渲染的类型

    fill带有可选的边界的填充面

    line线类型

    symbol图标点或label标签图层

    circle填充圆

    heatmap热力图

    fill-extrusion 3D 面

    raster栅格影像图层如WSM|WMTS|单张图片

    hillshade地形数据

    background图层的背景色

    sky一个围绕地图的球形圆顶在所有其他图层后面渲染。

Layers有两个子属性决定图层layer的渲染layoutpaint

  • 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