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": [...] }
必選 enum.

樣式規范版本號。 必須為 8。

"version": 8
可選 string.

樣式名稱.

"name": "Bright"
可選

關於樣式表的任意屬性信息,但不對渲染過程產生影響。這些屬性應該添加前綴以避免沖突,例如 'mapbox:'。

可選 array.

地圖默認的中心經度和緯度。這個中心點只有在地圖沒有被其他方法定位時(例如地圖設置或用戶交互)才生效。

"center": [ -73.9749, 40.7736 ]
可選 number.

默認縮放級別。這個縮放級別只有在地圖沒有被其他方法定位時(例如地圖設置或用戶交互)才生效。

"zoom": 12.5
可選 number單位為 degrees默認為 0.

默認方位角,沿順時針偏離真北方向的夾角。這個方位角只有在地圖沒有被其他方法定位時(例如地圖設置或用戶交互)才生效。

"bearing": 29
可選 number單位為 degrees默認為 0.

默認傾斜角度。0 代表垂直於地面,即垂直俯視地圖,更大的值例如 60 可以眺望到地平線。這個傾斜角度只有在地圖沒有被其他方法定位時(例如地圖設置或用戶交互)才生效。

"pitch": 50
可選
必選 sources.

數據源說明。

"sources": { "mapbox-streets": { "type": "vector", "url": "mapbox://mapbox.mapbox-streets-v6" } }
可選 string.

獲取雪碧圖及其元數據的基礎 URL。擴展名后綴 .png.json、以及縮放因子 @2x.png 會被自動添加。當有圖層使用了 background-patternfill-patternline-pattern、或icon-image 屬性時,此屬性必須設置。

"sprite": "mapbox://sprites/mapbox/bright-v8"
可選 string.

獲取以有向距離場編碼的 PBF 字形文件的 URL 模板。URL 必須包含 {fontstack} 和 {range} 占位符。當有圖層使用了 text-field 布局屬性時,此屬性必須設置。

"glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
可選 transition.

全局的過渡動畫屬性,用來作為各種屬性變化時的默認設置。

"transition": { "duration": 300, "delay": 0 }
必選 array.

圖層將按照此數組依次繪制。

"layers": [ { "id": "water", "source": "mapbox-streets", "source-layer": "water", "type": "fill", "paint": { "fill-color": "#00ffff" } } ]

數據源

數據源提供地圖顯示的數據。數據源的類型通過 "type" 屬性指定,並且必須是 vectorrastergeojsonimagevideo 其中之一。僅添加數據源並不會立即顯示在地圖上,因為缺少樣式信息如顏色或線寬。通過圖層引用數據源將其顯示出來。可以對同一數據源采用多種方式渲染,例如在高速路圖層中對不同的等級的公路進行分別渲染以示區分。

瓦片數據源(矢量和柵格)必須按照 TileJSON 規范 來設置數據源信息。 可通過多種方式指定:

  • 在數據源字段中直接提供 TileJSON 屬性字段如 "tiles""minzoom"、和 "maxzoom"
    "mapbox-streets": { "type": "vector", "tiles": [ "http://a.example.com/tiles/{z}/{x}/{y}.pbf", "http://b.example.com/tiles/{z}/{x}/{y}.pbf" ], "maxzoom": 14 }
  • 提供一個指向 TileJOSN 文件的 "url"
    "mapbox-streets": { "type": "vector", "url": "http://api.example.com/tilejson.json" }
  • 提供一個 url 指向支持EPSG:3857(或 EPSG:900913)坐標的 WMS 地圖服務,作為瓦片的數據源。 服務的 url 應該包含一個 "{bbox-epsg-3857}" 替換符,用以提供 bbox 參數。 (此項功能目前僅支持 Mapbox GL JS 和 Mapbox macOS SDK。)
    "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 }

vector

矢量瓦片數據源。瓦片必須是 Mapbox Vector Tile 格式。瓦片中所有的幾何坐標必須在 -1 * extent 和 (extent * 2) - 1 之間(包括界限值)。所有引用矢量數據源的圖層必須指定 "source-layer" 屬性。 對於 Mapbox 托管的矢量瓦片,"url" 的形式為 mapbox://mapid

"mapbox-streets": { "type": "vector", "url": "mapbox://mapbox.mapbox-streets-v6" }
url
可選 string.

指向 TileJSON 的 URL。支持的協議有 http:https:、 以及 mapbox://<mapid>

可選 array.

包含一個或多個瓦片數據源的 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

raster

對於 Mapbox 托管的矢量瓦片,"url" 的形式為 mapbox://mapid

"mapbox-satellite": { "type": "raster", "url": "mapbox://mapbox.satellite", "tileSize": 256 }
url
可選 string.

指向 TileJSON 的 URL。支持的協議有 http:https:、 以及 mapbox://<mapid>

可選 array.

包含一個或多個瓦片數據源的 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

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": "./lines.geojson" }
可選

鏈接到 GeoJSON 文件的 URL,或者內聯的 GeoJSON。

可選 number默認為 18.

生成矢量瓦片的最大縮放級別(值越大詳細程度越高)。

可選 number默認為 128.

瓦片邊界上的緩沖區大小。0 表示無緩沖區。512 表示緩沖區與瓦片本身一樣寬。值越大在瓦片邊緣上生成的符號沖突越少,但是意味着性能降低。

可選 number默認為 0.375.

Douglas-Peucker 化簡容差(值越大,幾何要素化簡程度越高,渲染性能也更好)。

可選 boolean默認為 false.

如果數據是點數據集,設置 true 將會按照聚類半徑進行聚類。

可選 number默認為 50.

聚類半徑。512 表示聚類半徑等於瓦片寬度。

可選 number.

點進行聚類的最大縮放級別。默認為 maxzoom - 1(為了確保在最大縮放級別下要素不被聚類)。

SDK 支持 Mapbox GL JS iOS SDK Android SDK
基礎功能 >= 0.10.0 >= 2.0.0 >= 2.0.1
聚類 >= 0.14.0 暫不支持 暫不支持

image

圖片數據源。"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
必選 string.

指向圖片的 URL。

必選 array.

圖片的四角的經緯度坐標。

SDK 支持 Mapbox GL JS iOS SDK Android SDK
基礎功能 >= 0.10.0 暫不支持 暫不支持

video

視頻數據源。"urls" 的值是一個數組。對於數組中的每一個 URL,將會生成一個 video 元素的 ,以滿足不同瀏覽器對視頻格式的要求。

"coordinates" 數組包含視頻四角的 [經度, 緯度] 坐標對,以順時針方向排列:左上角、右上角、右下角、左下角。

"video": { "type": "video", "urls": [ "https://www.mapbox.com/drone/video/drone.mp4", "https://www.mapbox.com/drone/video/drone.webm" ], "coordinates": [ [-122.51596391201019, 37.56238816766053], [-122.51467645168304, 37.56410183312965], [-122.51309394836426, 37.563391708549425], [-122.51423120498657, 37.56161849366671] ] }
必選 array.

指向視頻內容的URL,按照格式優先級排列。

必選 array.

視頻的四角的經緯度坐標。

SDK 支持 Mapbox GL JS iOS SDK Android SDK
基礎功能 >= 0.10.0 暫不支持 暫不支持

Sprite

樣式中的 sprite 屬性需提供一個 URL 模板,用於獲取在background-patternfill-patternline-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 SDK 將會根據樣式中的 sprite 屬性值,生成獲取這兩種文件的 URL。首先,對於這兩種文件,在高分屏設備上都會在 URL 上追加 @2x。其次,會對索引文件添加 .json 文件后綴,對圖片文件添加 .png 文件后綴。例如,如果你指定 "sprite": "https://example.com/sprite",渲染是將會載入 https://example.com/sprite.json 和 https://example.com/sprite.png,或者 https://example.com/sprite@2x.json 和 https://example.com/sprite@2x.png

如果您正在使用 Mapbox Studio,Mapbox 會提供預生成好的雪碧圖,同時也可以上傳自定義的 SVG 圖像來生成您自己的雪碧圖。無論哪種方式,雪碧圖都會自動構建並且可用通過 Mapbox API 獲取到。如果您想手動生成雪碧圖並放到自己的服務器上,您可以使用 spritezero-cli,這個命令行工具可以從 SVG 文件夾中生成兼容 Mapbox GL 的雪碧圖片和索引文件。

Glyphs

樣式的 glyphs 屬性提供一個獲取 PBF 格式的有向距離場字型文件的 URL 模板。

"glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"

 

Transition

樣式的 transition 屬性提供一個全局的過渡設置。

"transition": { "duration": 300, "delay": 0 }

 

可選 number單位為 milliseconds默認為 300.

過渡動畫的持續時間。

可選 number單位為 milliseconds默認為 0.

過渡動畫延遲開始的時間。

Layers

樣式的 layers 屬性羅列出所有的樣式圖層。圖層的類型通過 "type" 屬性指定,並且必須是 background, fill, line, symbol, raster, circle 其中之一。

除了 background 圖層,其他圖層均需要引用一個數據源。圖層從數據源中獲取數據、過濾數據、以及定義要素符號化的方法。

"layers": [ { "id": "water", "source": "mapbox-streets", "source-layer": "water", "type": "fill", "paint": { "fill-color": "#00ffff" } } ]

 

id
必選 string.

全局唯一的圖層名稱。

可選 enum可選的值有 filllinesymbolcirclerasterbackground.

圖層的渲染類型。

fill

可填充的多邊形,可帶描邊。

line

繪制線。

symbol

圖標或者文本標注。

circle

可填充的圓。

raster

柵格地圖例如衛星影像。

background

地圖的背景色或者填充圖案。

可選

關於圖層的任意屬性信息,但不對渲染過程產生影響。這些屬性應該添加前綴以避免沖突,例如 'mapbox:'。

ref
可選 string.

引用其他圖層的 typesourcesource-layerminzoommaxzoomfilter、以及 layout 屬性。此屬性可讓圖層共享處理過程,提高效率。

可選 string.

圖層的數據源。

可選 string.

矢量瓦片數據源的圖層。當數據源支持多個圖層時,此屬性是必需的。

可選 number.

圖層進行解析並顯示的最小縮放級別。

可選 number.

圖層進行解析並顯示的最大縮放級別。

可選 boolean默認為 false.

允許從此圖層上查詢要素數據,用於交互。

可選 filter.

指明數據源上要素的過濾條件的表達式。只有符合過濾條件的要素才被顯示。

可選 layout.

圖層的布局屬性。

可選 paint.

圖層的默認繪制屬性。

可選 paint.

特定類別的繪制屬性。第一個點后面的部分即為類別名。

圖層有兩個子屬性用來確定圖層中的數據如何被渲染:layout 和 paint 屬性.

Layout 屬性 出現在圖層的 "layout" 對象中。它將被應用於渲染過程的早期階段,定義了圖層的數據如何傳輸到 GPU。為了提升效率,其他圖層可以通過 "ref" 屬性來共享此圖層的 layout 屬性,應當盡可能地使用此功能。這將會減少處理時間,並允許圖層間共享 GPU 內存和其他資源。

Paint 屬性 被應用於渲染過程的后期階段。一個共享其他圖層 layout 屬性的圖層可以設置不同的 paint 屬性。Paint 屬性出現在圖層的 "paint" 對象中。圖層可以設置特定類別的 paint 屬性,根據地圖設置的類名稱進行調用。例如,圖層的 "paint.night" 屬性將會在地圖設置了 "night" 類名時生效。

Key: 支持插值函數 支持階梯函數 支持過渡

background

Layout 屬性

可選 enum可選的值有 visiblenone默認為 visible.

是否顯示此圖層。

visible

顯示此圖層。

none

不顯示此圖層。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

Paint 屬性

可選 color默認為 #000000設置 background-pattern 后無效.

背景色。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 string.

在雪碧圖中的圖標名稱,用來繪制背景圖案。為了無縫填充,圖案的寬和高必須是 2 的整數倍如 (2, 4, 8, ..., 512)。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 1.

背景色的不透明度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

fill

Layout 屬性

可選 enum可選的值有 visiblenone默認為 visible.

是否顯示此圖層。

visible

顯示此圖層。

none

不顯示此圖層。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

Paint 屬性

可選 boolean默認為 true.

多邊形填充是否需要反鋸齒。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 1.

多邊形填充的不透明度。與 fill-color 不同的是,當有描邊時,這個值也會影響到多邊形填充作為 1px 的描邊。對於一個凸出的填充圖層,不透明度將以圖層為單位而不是以要素為單位生效(也因此將不會支持字段函數)。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.21.0 不支持 不支持
可選 color默認為 #000000設置 fill-pattern 后無效.

此圖層填充部分的顏色。該顏色可以用包括 alpha 通道的 rgba 方式指定,並且顏色的不透明度將不會影響到周圍 1 px的描邊。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.19.0 不支持 不支持
可選 color設置 fill-pattern 后無效. 需要 fill-antialias = true.

多邊形填充的輪廓顏色。如果未指定,與 fill-color 一致。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.19.0 不支持 不支持
可選 array單位為 pixels默認為 0,0.

幾何要素的偏移量。以 [x, y] 形式設置,負值表示向左和上偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewport默認為 map需要 fill-translate.

控制偏移的參考點。

map

相對於地圖偏移。

viewport

相對於視窗偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 string.

在雪碧圖中的圖標名稱,用來對多邊形進行圖案填充。為了無縫填充,圖案的寬和高必須是 2 的整數倍如 (2, 4, 8, ..., 512)。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 0.

凸出此多邊形圖層的高度值。

可選 number默認為 0必須小於等於 fill-extrude-height.

凸出此圖層基底的高度值。

line

Layout 屬性

可選 enum可選的值有 buttroundsquare默認為 butt.

線末端的顯示樣式。

butt

方型末端,僅繪制到直線端點。

round

圓型末端,以線寬的 1/2 為半徑,以線端點為圓心,超出線端點繪制。

square

方型末端,以線寬的 1/2 長度超出線端點繪制。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 bevelroundmiter默認為 miter.

線交叉時的顯示樣式。

bevel

方型交點,以線寬的 1/2 長度超出交點繪制。

round

圓型交點,以線寬的 1/2 為半徑,以交點為圓心繪制,超出交點繪制。

miter

尖型交角,以兩線段外沿相交,超出交點繪制。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 2需要 line-join = miter.

用來將銳利的尖型交角自動地轉換為方型交角。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 1.05需要 line-join = round.

用來將平淺的圓型交角自動地轉換為尖型交角。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 visiblenone默認為 visible.

是否顯示此圖層。

visible

顯示此圖層。

none

不顯示此圖層。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

Paint 屬性

可選 number默認為 1.

繪制線的不透明度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 color默認為 #000000設置 line-pattern 后無效.

繪制線的顏色。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.23.0 不支持 不支持
可選 array單位為 pixels默認為 0,0.

幾何要素的偏移量。以 [x, y] 形式設置,負值表示向左和上偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewport默認為 map需要 line-translate.

控制偏移的參考點。

map

相對於地圖偏移。

viewport

相對於視窗偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 1.

Stroke thickness.

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 0.

在線的實際路徑外部繪制線套。設置的值表示內間距。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 0.

線的偏移。對於線狀要素,正值表示相對於線走向的右邊偏移。對於多邊形要素,正值表示內縮(inset),負值表示外突(outset)。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.12.1 >= 3.1.0 >= 3.0.0
line-blur  
可選 number單位為 pixels默認為 0.

線虛化的像素值。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 array單位為 line widths設置 line-pattern 后無效.

指定生成虛線的實部和虛部長度。設置的長度會隨着線寬進行縮放。將長度乘以當前線寬即為虛線的實際像素數。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 string.

在雪碧圖中的圖標名稱,用來對線進行圖案填充。為了無縫填充,圖案的寬和高必須是 2 的整數倍如 (2, 4, 8, ..., 512)。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

symbol

Layout 屬性

可選 enum可選的值有 pointline默認為 point.

注記相對於幾何要素的位置。

point

標注在幾何要素的點位上。

line

標注在幾何要素的邊線上。只能用在 LineString 和 Polygon 要素上

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 250需要 symbol-placement = line.

兩個注記錨點之間的距離。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false.

設置為 true 時,注記不會跨瓦片邊緣,以避免相互沖突。當圖層的矢量瓦片沒有足夠的緩沖區以避免沖突,或者一個點注記圖層在一個線注記圖層之上時,推薦開啟此設置。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false需要 icon-image.

設置為 true 時,圖標符號即使碰撞到其他繪制的注記也會顯示。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false需要 icon-image.

設置為 true 時,其他注記即使碰撞到此圖標符號也會顯示。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false需要 icon-image. 需要 text-field.

設置為 true 時,當此注記的圖標與其他注記碰撞而文本未碰撞時,僅顯示此注記的文本而不顯示圖標。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewportauto默認為 auto需要 icon-image.

與 symbol-placement 組合使用,決定旋轉時圖標的行為。

map

當 symbol-placement 設置為 point 時,將圖標與東西方向對齊。當 symbol-placement 設置為 line 時,將圖標的 x 軸與線對齊。

viewport

將圖標的 x 軸與視窗的 x 軸對齊,無論 symbol-placement 設置為哪個值。

auto

當 symbol-placement 設置為 point 時,與 viewport 行為一致。當 symbol-placement 設置為 line 時,與 map 行為一致。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

auto value

不支持 不支持 不支持
可選 number默認為 1需要 icon-image.

圖標的縮放因子。1 表示原始大小,3 表示三倍大小。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 nonewidthheightboth默認為 none需要 icon-image. 需要 text-field.

縮放圖標以與文本相匹配。

none

圖標按其本身的比例進行顯示。

width

圖標在 x 軸進行縮放以匹配文本的寬度。

height

圖標在 y 軸進行縮放以匹配文本的高度。

both

圖標在 x 軸與 y 軸都進行縮放。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.21.0 不支持 不支持
可選 array單位為 pixels默認為 0,0,0,0需要 icon-image. 需要 text-field. 需要 icon-text-fit = one of both, width, height.

根據 icon-text-fit 確定的圖標尺寸添加額外的間隔,以上-右-下-左的順時針順序設置。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.21.0 不支持 不支持
可選 string.

替換 {tokens} 的字符串,引用拉取的圖標資源。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 degrees默認為 0需要 icon-image.

按順時針方向旋轉圖標。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.21.0 不支持 不支持
可選 number單位為 pixels默認為 2需要 icon-image.

包圍在圖標 bbox 外的額外空間,用以檢測注記碰撞。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false需要 icon-image. 需要 icon-rotation-alignment = map. 需要 symbol-placement = line.

如果設置為 true,圖標可以被翻轉以避免圖標上下顛倒。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 array默認為 0,0需要 icon-image.

圖標與其錨點的偏移量。正值表示向右和下偏移,負值表示向左和上偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewportauto默認為 auto需要 text-field.

當地圖傾斜時文本的方向。

map

文本與地圖平面對齊。

viewport

文本與視窗平面對齊。

auto

自動地與 text-rotation-alignment 設置相匹配。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.21.0 >= 2.0.0 >= 2.0.1

auto value

不支持 不支持 不支持
可選 enum可選的值有 mapviewportauto默認為 auto需要 text-field.

與 symbol-placement 結合使用,確定構成文本的單個字型的旋轉行為。

map

當 symbol-placement 設置為 point 時,將文本與東西方向對齊。當 symbol-placement 設置為 line 時,將文本的 x 軸與線對齊。

viewport

將字型的 x 軸與視窗的 x 軸對齊,無論 symbol-placement 設置為哪個值。

auto

當 symbol-placement 設置為 point 時,與 viewport 行為一致。當 symbol-placement 設置為 line 時,與 map 行為一致。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

auto value

不支持 不支持 不支持
可選 string.

用來作為文本標注的字段。用 {field_name} 指示使用要素的哪個字段。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 array默認為 Open Sans Regular,Arial Unicode MS Regular需要 text-field.

顯示文本的字棧。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 16需要 text-field.

字體大小

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 ems默認為 10需要 text-field.

文本折行的最大行度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 ems默認為 1.2需要 text-field.

多行文本的行高。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 ems默認為 0需要 text-field.

字符間距。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 leftcenterright默認為 center需要 text-field.

文本對齊選項。

left

文本左對齊。

center

文本居中。

right

文本右對齊。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 centerleftrighttopbottomtop-lefttop-rightbottom-leftbottom-right默認為 center需要 text-field.

文本停靠到錨點的部分。

center

文本中心停靠到錨點。

left

文本左邊停靠到錨點。

right

文本右邊停靠到錨點。

top

文本頂部停靠到錨點。

bottom

文本底部停靠到錨點。

top-left

文本的左上角停靠到錨點。

top-right

文本的右上角停靠到錨點。

bottom-left

文本的左下角停靠到錨點。

bottom-right

文本的右下角停靠到錨點。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 degrees默認為 45需要 text-field. 需要 symbol-placement = line.

相鄰字符的最大夾角。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 degrees默認為 0需要 text-field.

順時針旋轉文本的角度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 2需要 text-field.

文本框四周的額外空間,用以檢測注記碰撞。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 true需要 text-field. 需要 text-rotation-alignment = map. 需要 symbol-placement = line.

如果設置為 true,文本可以被翻轉以避免圖標上下顛倒。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 noneuppercaselowercase默認為 none需要 text-field.

設置文本的大小寫,類似於 CSS 的 text-transform 屬性。

none

文本保持不變。

uppercase

強制使所有的字符大寫。

lowercase

強制使所有的字符小寫。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 array單位為 ems默認為 0,0需要 text-field.

文本與其錨點的偏移量。正值表示向右和下偏移,負值表示向左和上偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false需要 text-field.

設置為 true 時,文本標注即使碰撞到其他繪制的注記也會顯示。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false需要 text-field.

設置為 true 時,其他注記即使碰撞到此文本標注也會顯示。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 boolean默認為 false需要 text-field. 需要 icon-image.

設置為 true 時,當此文本注記與其他注記碰撞而圖標未碰撞時,僅顯示此注記的圖標而不顯示文本。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 visiblenone默認為 visible.

是否顯示此圖層。

visible

顯示此圖層。

none

不顯示此圖層。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

Paint 屬性

可選 number默認為 1需要 icon-image.

繪制圖標的不透明度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 color默認為 #000000需要 icon-image.

圖標的顏色。僅對 sdf 格式的圖標有效。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 color默認為 rgba(0, 0, 0, 0)需要 icon-image.

圖標的光暈顏色。僅對 sdf 格式的圖標有效。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 0需要 icon-image.

光暈到圖標輪廓的距離。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 0需要 icon-image.

光暈向外漸變的寬度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 array單位為 pixels默認為 0,0需要 icon-image.

圖標錨點偏離原始位置的距離。正數表示向右和下偏移,負數表示向左和上偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewport默認為 map需要 icon-image. 需要 icon-translate.

控制偏移的參考點。

map

相對於地圖偏移。

viewport

相對於視窗偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 1需要 text-field.

繪制文本的不透明度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 color默認為 #000000需要 text-field.

繪制文本的顏色。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 color默認為 rgba(0, 0, 0, 0)需要 text-field.

文本光暈的顏色,用於區別於背景。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 0需要 text-field.

光暈離字體輪廓線的距離。最大值為字體大小的 1/4

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 pixels默認為 0需要 text-field.

光暈向外漸變的寬度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 array單位為 pixels默認為 0,0需要 text-field.

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewport默認為 map需要 text-field. 需要 text-translate.

控制偏移的參考點。

map

相對於地圖偏移。

viewport

相對於視窗偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

raster

Layout 屬性

可選 enum可選的值有 visiblenone默認為 visible.

是否顯示此圖層。

visible

顯示此圖層。

none

不顯示此圖層。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

Paint 屬性

可選 number默認為 1.

繪制圖片的不透明度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 degrees默認為 0.

在色輪上旋轉色相的角度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 0.

增大或減少圖片的亮度。此值是最小亮度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 1.

增大或減少圖片的亮度。此值是最大亮度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 0.

增加或者減少圖片的飽和度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number默認為 0.

增加或者減少圖片的對比度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 number單位為 milliseconds默認為 300.

當添加新瓦片時的漸隱時間。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

circle

Layout 屬性

可選 enum可選的值有 visiblenone默認為 visible.

是否顯示此圖層。

visible

顯示此圖層。

none

不顯示此圖層。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

Paint 屬性

可選 number單位為 pixels默認為 5.

圓的半徑。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.18.0 不支持 不支持
可選 color默認為 #000000.

圓的填充顏色。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.18.0 不支持 不支持
可選 number默認為 0.

圓虛化的程度。1 表示把圓虛化到只有圓心是不透明的。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.20.0 不支持 不支持
可選 number默認為 1.

繪制圓的不透明度。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1

data-driven styling

>= 0.20.0 不支持 不支持
可選 array單位為 pixels默認為 0,0.

幾何要素的偏移量。以 [x, y] 形式設置,負值表示向左和上偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewport默認為 map需要 circle-translate.

控制偏移的參考點。

map

相對於地圖偏移。

viewport

相對於視窗偏移。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.10.0 >= 2.0.0 >= 2.0.1
可選 enum可選的值有 mapviewport默認為 map.

當地圖傾斜時,控制圓的縮放行為。

map

圓根據與相機的視距離進行縮放。

viewport

圓不進行縮放。

SDK 支持 Mapbox GL JS iOS SDK Android SDK

basic functionality

>= 0.21.0 不支持 不支持

值類型

Mapbox 樣式文件包含多種不同類型的值,其中大多數是圖層相關的屬性。

Color

顏色值以 JSON 字符串的形式定義,允許的格式有:HTML 風格的 hex 值、rgb、rbga、hsl、和hsla。HTML 保留的顏色名稱如 yellow 和 blue也可以使用。

{ "line-color": "#ff0", "line-color": "#ffff00", "line-color": "rgb(255, 255, 0)", "line-color": "rgba(255, 255, 0, 1)", "line-color": "hsl(100, 50%, 50%)", "line-color": "hsla(100, 50%, 50%, 1)", "line-color": "yellow" }

支持 hsl,是因為比 rgb() 更易理解

Enum

從字符串形式的值列表中選擇一個。在值兩邊使用引號括起來。

{ "text-transform": "uppercase" }

String

字符串即文本。在 Mapbox 樣式文件中,字符串要用引號括起來。字符串可以為任意內容,但是要注意 text-field ——它實際上是通過花括號的方式引用要素,如下例。

{ "text-field": "{MY_FIELD}" }

Boolean

布爾值表示是或否,接受的值有 true 或 false

{ "fill-enabled": true }

Number

數值,通常為整數或浮點數(十進制)。不需要用引號括起來。

{ "text-size": 24 }

Array

數組是以一定順序、以逗號分隔的一個或多個數值。它們被用來設置虛線,指定虛線實部和虛部的長度間隔。

{ "line-dasharray": [2, 4] }

Function

任何 layout 或 paint 屬性可以設置成 函數. 函數使得地圖要素的樣式隨當前縮放級別和要素字段變化。

  • stops必選 array.
    函數按照輸入和輸出進行定義。一對輸入輸出就是一個“stop”。
  • property可選 string.
    如果指定,函數將會把相應要素字段作為輸入。另見  字段函數
  • base可選 number. 默認為 1.
    插值曲線的指數基底。控制斷點插值的增長速率。值越大,在靠近上限的一端增長越快。1 表示線性插值。
  • type可選 enum. 可選的值有 identityexponentialintervalcategorical.
    identity 函數的輸出與輸入相同。
    exponential 函數在斷點間插值的結果稍小於和稍大於函數輸入。 這是   屬性的默認設置。
    interval 函數輸出的斷點值稍小於函數輸入。這是   屬性的默認設置。
    categorical 函數輸出的斷點值等於函數輸入。

縮放函數允許地圖要素的樣式隨縮放級別變化。縮放用來產生視覺深度和控制數據顯示密度。每個斷點由兩個元素組成,第一個是縮放級別,第二個是函數輸出的值。

{ "circle-radius": { "stops": [ // zoom is 5 -> circle radius will be 1px [5, 1], // zoom is 10 -> circle radius will be 2px [10, 2] ] } } 

字段函數允許地圖要素樣式隨其字段值變化。字段函數用來區分同一個圖層中不同類型的要素,或者進行數據可視化。每個斷點由兩個元素組成,第一個是字段的值,第二個是函數輸出的值。需要注意的是,現階段不是所有的樣式屬性、所有的平台都支持字段函數。

{ "circle-color": { "property": "temperature", "stops": [ // "temperature" is 0 -> circle color will be blue [0, 'blue'], // "temperature" is 100 -> circle color will be red [100, 'red'] ] } } 

縮放+字段函數允許地圖要素樣式隨縮放級別和 字段進行變化。每個斷點由兩個元素組成,第一個是包含字段值和縮放級別的對象,第二個值是函數輸出的值。需要注意的是對字段函數的支持還不完整。

{ "circle-radius": { "property": "rating", "stops": [ // zoom is 0 and "rating" is 0 -> circle radius will be 0px [{zoom: 0, value: 0}, 0], // zoom is 0 and "rating" is 5 -> circle radius will be 5px [{zoom: 0, value: 5}, 5], // zoom is 20 and "rating" is 0 -> circle radius will be 0px [{zoom: 20, value: 0}, 0], // zoom is 20 and "rating" is 5 -> circle radius will be 20px [{zoom: 20, value: 5}, 20] ] } } 

Filter

過濾器從圖層中選擇特定的要素。過濾器是由以下形式的過濾條件構成的數組:

存在與否過濾條件

["has", key]  feature[key] 存在
["!has", key]  feature[key] 不存在

比較過濾條件

["==", key, value]  等於:feature[key] = value
["!=", key, value]  不等於:feature[key] ≠ value
[">", key, value]  大於:feature[key] > value
[">=", key, value]  大於等於:feature[key] ≥ value
["<", key, value]  小於:feature[key] < value
["<=", key, value]  小於等於:feature[key] ≤ value

集合隸屬過濾條件

["in", key, v0, ..., vn]  包含:feature[key] ∈ {v0, ..., vn}
["!in", key, v0, ..., vn]  不包含:feature[key] ∉ {v0, ..., vn}

復合過濾條件

["all", f0, ..., fn]  邏輯f0 ∧ ... ∧ fn
["any", f0, ..., fn]  邏輯f0 ∨ ... ∨ fn
["none", f0, ..., fn]  邏輯: ¬f0 ∧ ... ∧ ¬fn

過濾器的 key 必須是表示要素字段的字符串,或者是表示要素類型的特殊字符 "$type"value(和集合 v0, ..., vn)必須是 stringnumber、或 boolean,並且與字段值類型一致。對於 "$type",其值必須是 "Point""LineString""Polygon"其中之一。

集合隸屬過濾條件是一個緊湊和高效的方式,來測試字段值是否在值列表中。

比較和集合隸屬過濾條件進行的是嚴格類型比較。例如,這些比較都會返回 false:0 < "1"2 == "2""true" in [true, false]

"all""any"、和 "none" 過濾操作符用來生成復合過濾條件。其值必須是 f0, ..., fn 過濾條件本身。

["==", "$type", "LineString"]

以下過濾條件要求要素的 class 字段的值是 "street_major"、"street_minor"、或 "street_limited"。

["in", "class", "street_major", "street_minor", "street_limited"]

以下復合過濾條件 "all" 包含三條其他過濾條件,並要求選中的要素同時滿足這些條件:要素的 class 必須等於 "street_limited",它的 admin_level 必須大於等於 3,並且幾何類型不能是 Polygon。你可以將復合條件改為 "any" ,用來選擇滿足任意條件的要素——如類型為 Polygon,但 class 字段的值不同。

[ "all", ["==", "class", "street_limited"], [">=", "admin_level", 3], ["!in", "$type", "Polygon"] ]
SDK 支持 Mapbox GL JS iOS SDK Android SDK
基礎功能 >= 0.10.0 >= 2.0.0 >= 2.0.1
has/!has >= 0.19.0 >= 3.3.0 >= 4.1.0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM