mapboxsymbols层级设置_Mapbox地图样式规范
Mapbox 地图样式规范
Mapbox 样式⽂件定义的是地图所呈现的视觉外观,包括:需要绘制哪些数据、绘制的顺序、以及绘制数据时如何进⾏符号化。样式⽂档是以 JSON 对象中的属性字段进⾏组织的。此规范对这些属性字段进⾏定义和描述。
此⽂档⾯向的对象包括:
更倾向于⼿写样式⽽不是使⽤ Mapbox Studio ⽣成样式的⾼级设计师和制图⼈员
希望使⽤ Mapbox GL JS 或 Mapbox iOS 或 Android SDK 中样式相关特性的开发者
开发⽣成或处理 Mapbox 样式⽂件的软件⼯具开发者。
根节点属性字段规定了样式中地图的图层、⽡⽚数据源和其他资源、以及其他地⽅未指定时相机的默认参数。
{"version":8,"name":"Mapbox Streets","sprite":"mapbox://sprites/mapbox/streets-
v8","glyphs":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf","sources":{...},"layers":[...]}
样式规范版本号。 必须为 8。
"version":8
样式名称.
"name":"Bright"
可选
关于样式表的任意属性信息,但不对渲染过程产⽣影响。这些属性应该添加前缀以避免冲突,例如 'mapbox:'。
地图默认的中⼼经度和纬度。这个中⼼点只有在地图没有被其他⽅法定位时(例如地图设置或⽤户交互)才⽣效。
"center":[-73.9749,40.7736]
默认缩放级别。这个缩放级别只有在地图没有被其他⽅法定位时(例如地图设置或⽤户交互)才⽣效。
"zoom":12.5
可选 number. 单位为 degrees. 默认为 0.
默认⽅位⾓,沿顺时针偏离真北⽅向的夹⾓。这个⽅位⾓只有在地图没有被其他⽅法定位时(例如地图设置或⽤户交互)才⽣效。
"bearing":29
可选 number. 单位为 degrees. 默认为 0.
默认倾斜⾓度。0 代表垂直于地⾯,即垂直俯视地图,更⼤的值例如 60 可以眺望到地平线。这个倾斜⾓度只有在地图没有被其他⽅法定位时(例如地图设置或⽤户交互)才⽣效。
"pitch":50
数据源说明。
"sources":{"mapbox-streets":{"type":"vector","url":"mapbox://mapbox.mapbox-streets-v6"}}
获取雪碧图及其元数据的基础 URL。扩展名后缀 .png、.json、以及缩放因⼦ @2x.png 会被⾃动添加。
当有图层使⽤了 background-pattern、fill-pattern、line-pattern、或icon-image 属性时,此属性必须设置。
"sprite":"mapbox://sprites/mapbox/bright-v8"
获取以有向距离场编码的 PBF 字形⽂件的 URL 模板。URL 必须包含 {fontstack} 和 {range} 占位符。当有图层使⽤了 text-field 布局属性时,此属性必须设置。
"glyphs":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
全局的过渡动画属性,⽤来作为各种属性变化时的默认设置。
"transition":{"duration":300,"delay":0}
图层将按照此数组依次绘制。
"layers":[{"id":"water","source":"mapbox-streets","source-layer":"water","type":"fill","paint":{"fill-color":"#00ffff"}}]
数据源提供地图显⽰的数据。数据源的类型通过 "type" 属性指定,并且必须是 vector, raster, geojson, image, video 其中之⼀。仅添加
数据源并不会⽴即显⽰在地图上,因为缺少样式信息如颜⾊或线宽。通过图层引⽤数据源将其显⽰出来。可以对同⼀数据源采⽤多种⽅式渲
染,例如在⾼速路图层中对不同的等级的公路进⾏分别渲染以⽰区分。
⽡⽚数据源(⽮量和栅格)必须按照 TileJSON 规范 来设置数据源信息。 可通过多种⽅式指定:
在数据源字段中直接提供 TileJSON 属性字段如 "tiles"、"minzoom"、和 "maxzoom":
"mapbox-streets":{"type":"vector","tiles":
["a.example/tiles/{z}/{x}/{y}.pbf","b.example/tiles/{z}/{x}/{y}.pbf"],"maxzoom":14}
提供⼀个指向 TileJOSN ⽂件的 "url":
"mapbox-streets":{"type":"vector","url":"ample/tilejson.json"}
提供⼀个 url 指向⽀持EPSG:3857(或 EPSG:900913)坐标的 WMS 地图服务,作为⽡⽚的数据源。 服务的 url 应该包含⼀个 "{bbox-
epsg-3857}" 替换符,⽤以提供 bbox 参数。 (此项功能⽬前仅⽀持 Mapbox GL JS 和 Mapbox macOS
SDK。)
"wms-imagery":{"type":"raster","tiles":['a.example/wms?bbox={bbox-epsg-
3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&width=256&height=256&layers=ex
⽮量⽡⽚数据源。⽡⽚必须是 Mapbox Vector Tile 格式。⽡⽚中所有的⼏何坐标必须在 -1 * extent 和 (extent * 2) - 1 之间(包括界限
值)。所有引⽤⽮量数据源的图层必须指定 "source-layer" 属性。 对于 Mapbox 托管的⽮量⽡⽚,"url" 的形式为 mapbox://mapid。
"mapbox-streets":{"type":"vector","url":"mapbox://mapbox.mapbox-streets-v6"}
指向 TileJSON 的 URL。⽀持的协议有 http:、https:、 以及 mapbox://。
包含⼀个或多个⽡⽚数据源的 URL,见 TileJSON 规范
可选 number. 默认为 0.
⽡⽚源的最⼩缩放级别,见 TileJSON 规范。
可选 number. 默认为 22.
⽡⽚源的最⼤缩放级别,见 TileJSON 规范。当显⽰更⾼缩放级别的地图时,会使⽤此级别的数据。
SDK ⽀持
Mapbox GL JS
iOS SDK
Android SDK
基本功能
>= 0.10.0
>= 2.0.0
>= 2.0.1
对于 Mapbox 托管的⽮量⽡⽚,"url" 的形式为 mapbox://mapid。
"mapbox-satellite":{"type":"raster","url":"mapbox://mapbox.satellite","tileSize":256}
指向 TileJSON 的 URL。⽀持的协议有 http:、https:、 以及 mapbox://。
包含⼀个或多个⽡⽚数据源的 URL,见 TileJSON 规范
可选 number. 默认为 0.
⽡⽚源的最⼩缩放级别,见 TileJSON 规范。
可选 number. 默认为 22.
⽡⽚源的最⼤缩放级别,见 TileJSON 规范。当显⽰更⾼缩放级别的地图时,会使⽤此级别的数据。
可选 number. 单位为 pixels. 默认为 512.
图层中显⽰⽡⽚的最⼩尺⼨。仅对栅格图层有效。
SDK ⽀持
Mapbox GL JS
iOS SDK
Android SDK
基本功能
>= 0.10.0
>= 2.0.0
>= 2.0.1
GeoJSON 数据源。数据源必须指定 "data" 属性,其值可以为 URL 或者内联的 GeoJSON。
"geojson-marker":{"type":"geojson","data":{"type":"Feature","geometry":{"type":"Point","coordinates":[-
77.0323,38.9131]},"properties":{"title":"Mapbox DC","marker-symbol":"monument"}}}
以下⽰例是⼀个通过 URL ⽅式指向⼀个外部 GeoJSON ⽂件的 GeoJSON 数据源。GeoJSON ⽂件必须在同⼀域上或者可通过 CORS ⽅式访问到。
"geojson-lines":{"type":"geojson","data":"./json"}
可选
链接到 GeoJSON ⽂件的 URL,或者内联的 GeoJSON。
可选 number. 默认为 18.
⽣成⽮量⽡⽚的最⼤缩放级别(值越⼤详细程度越⾼)。
可选 number. 默认为 128.
⽡⽚边界上的缓冲区⼤⼩。0 表⽰⽆缓冲区。512 表⽰缓冲区与⽡⽚本⾝⼀样宽。值越⼤在⽡⽚边缘上⽣成的符号冲突越少,但是意味着性能降低。
可选 number. 默认为 0.375.
Douglas-Peucker 化简容差(值越⼤,⼏何要素化简程度越⾼,渲染性能也更好)。
可选 boolean. 默认为 false.
如果数据是点数据集,设置 true 将会按照聚类半径进⾏聚类。
可选 number. 默认为 50.
聚类半径。512 表⽰聚类半径等于⽡⽚宽度。
点进⾏聚类的最⼤缩放级别。默认为 maxzoom - 1(为了确保在最⼤缩放级别下要素不被聚类)。
SDK ⽀持
Mapbox GL JS
iOS SDK
Android SDK
基础功能
>= 0.10.0
>= 2.0.0
>= 2.0.1
聚类
>= 0.14.0
暂不⽀持
暂不⽀持
图⽚数据源。"url" 包含了图⽚⽂件的位置。
"coordinates" 数组包含图⽚四⾓的 [经度, 纬度] 坐标对,以顺时针⽅向排列:左上⾓、右上⾓、右下⾓、左下⾓。
"image":{"type":"image","url":"/mapbox-gl-js/assets/radar.gif","coordinates":[[-80.425,46.437],[-71.516,46.437],[-
71.516,37.936],[-80.425,37.936]]}
指向图⽚的 URL。
SDK ⽀持
Mapbox GL JS
iOS SDK
Android SDK
基础功能
>= 0.10.0
视频数据源。"urls" 的值是⼀个数组。对于数组中的每⼀个 URL,将会⽣成⼀个 video 元素的 源,以满⾜不同浏览器对视频格式的要求。"coordinates" 数组包含视频四⾓的 [经度, 纬度] 坐标对,以顺时针⽅向排列:左上⾓、右上⾓、右下⾓、左下⾓。
"video":{"type":"video","urls":
["www.mapbox/drone/video/drone.mp4","www.mapbox/drone/video/drone.webm"],"coordinates": [[-122.51596391201019,37.56238816766053],[-122.51467645168304,37.56410183312965],[-
122.51309394836426,37.563391708549425],[-122.51423120498657,37.56161849366671]]}
指向视频内容的URL,按照格式优先级排列。
SDK ⽀持
Mapbox GL JS
iOS SDK
Android SDK
基础功能
>= 0.10.0
样式中的 sprite 属性需提供⼀个 URL 模板,⽤于获取在background-pattern、fill-pattern、line-pattern、和 icon-image 属性中使⽤的⼩图标。
"sprite":"mapbox://sprites/mapbox/bright-v8"
⼀个有效的雪碧图源必须包含两种⽂件:
索引⽂件,即⼀个 JSON ⽂件包含对雪碧图中的每个图标的描述信息。⽂件的内容必须是⼀个 JSON 对象,其中 key 作为标识符,被以上四个样式属性所使⽤;value 是⼀个对象,⽤来描述图标的尺⼨(width 和 height 属性)、像素⽐例(pixelRatio)、以及在雪碧图中的位置(x 和 y)。例如,只包含⼀个图标的雪碧图的索引⽂件内容如下:
{"poi":{"width":32,"height":32,"x":0,"y":0,"pixelRatio":1}}
然后样式⽂件可以通过创建⼀个设置了"icon-image": "poi"的符号图层来引⽤雪碧图中的图标,或者使⽤ "icon-image": "{icon}" 替换符的⽅式,符号化 icon 字段的值为 poi 的⽮量⽡⽚要素。
图⽚⽂件, 包含雪碧图数据的 PNG 图⽚。
如果您正在使⽤ Mapbox Studio,Mapbox 会提供预⽣成好的雪碧图,同时也可以上传⾃定义的 SVG 图像来⽣成您⾃⼰的雪碧图。⽆论哪种⽅式,雪碧图都会⾃动构建并且可⽤通过 Mapbox API 获取到。如果您想⼿动⽣成雪碧图并放到⾃⼰的服务器上,您可以使
⽤ spritezero-cli,这个命令⾏⼯具可以从 SVG ⽂件夹中⽣成兼容 Mapbox GL 的雪碧图⽚和索引⽂件。
pattern属性样式的 glyphs 属性提供⼀个获取 PBF 格式的有向距离场字型⽂件的 URL 模板。
"glyphs":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
样式的 transition 属性提供⼀个全局的过渡设置。
"transition":{"duration":300,"delay":0}
可选 number. 单位为 milliseconds. 默认为 300.
过渡动画的持续时间。
可选 number. 单位为 milliseconds. 默认为 0.
过渡动画延迟开始的时间。
样式的 layers 属性罗列出所有的样式图层。图层的类型通过 "type" 属性指定,并且必须是 background, fill, line, symbol, raster,
circle 其中之⼀。
除了 background 图层,其他图层均需要引⽤⼀个数据源。图层从数据源中获取数据、过滤数据、以及定义要素符号化的⽅法。
"layers":[{"id":"water","source":"mapbox-streets","source-layer":"water","type":"fill","paint":{"fill-color":"#00ffff"}}]
全局唯⼀的图层名称。
可选 enum. 可选的值有 fill, line, symbol, circle, raster, background.
图层的渲染类型。
fill可填充的多边形,可带描边。line绘制线。symbol图标或者⽂本标注。circle可填充的圆。raster栅格地图例如卫星影像。background 地图的背景⾊或者填充图案。
可选
关于图层的任意属性信息,但不对渲染过程产⽣影响。这些属性应该添加前缀以避免冲突,例如 'mapbox:'。
引⽤其他图层的 type、source、source-layer、minzoom、maxzoom、filter、以及 layout 属性。此属性可让图层共享处理过程,提⾼效率。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。