接下來要介紹一些進階應用啦~你一定看過像這種類型的地圖:

這個只是圖層 (Layer) 的應用之一,它的做法其實就是在一張基礎地圖上面再疊一張圖層,接下來的這幾天我們就要來介紹一些常見類型的圖層,像是:Line、Symbol、Circle、Fill、Heatmap,今天的話就先看一些關於 Layer 的屬性 (Property) 是如何應用的,開始吧!![]()
在進入 Property 介紹之前,先來稍微認識一下 Layer 的架構!
圖層的類型是由 type 屬性指定,必須是 background、fill、line、symbol、raster、circle、fill-extrusion、heatmap、hillshade、sky 之一 (之後要介紹的圖層主要是上述所提的常見類型),除了 background 和 sky 以外,每個圖層都必須從 source 引用數據,也可以依據需求定義樣式。
使用範例:
"layers": [
{
"id": "water",
"source": "mapbox-streets",
"source-layer": "water",
"type": "fill",
"paint": {
"fill-color": "#00ffff"
}
}
]
一樣的,我就介紹一些我認為比較常用的屬性,如果有興趣可以看一下官網的超~詳細介紹!
id:每個圖層都需要一個 unique idtype:圖層類型filter: 對 source (地圖資料來源) 進行篩選maxzoom:最大縮放級別minzoom:最小縮放級別source:資料來源名稱這裡特別拉出 2 個跟 Layer 關係較為親近的屬性來做介紹,會這麼說是因為它們所定義的是關於數據在地圖上的渲染方式,簡單來說就是關係到圖層和數據的應用樣式啦!
(概念有點像幫 Layer 加上 css)
layout:定義 Mapbox GL renderer 如何為圖層繪製和應用數據
visibility, line-cap, symbol-placement
使用範例:
map.addLayer({
id: 'gl-draw-line',
type: 'line',
source: 'draw-line',
layout: {
'line-cap': 'round',
'line-join': 'round',
'line-opacity': 0.75
}
});
paint:定義該圖層數據的樣式
fill-color, background-pattern, line-opacity
使用範例:
map.addLayer({
id: 'trees-point',
type: 'circle',
source: 'trees',
paint: {
'circle-radius': 3,
'circle-color': '#223b53',
'circle-stroke-color': 'white',
'circle-stroke-width': 1,
'circle-opacity': 0.5
}
});
圖層介紹就到這邊,今天算是稍微知道一下 Layer 如何組成的 (?
明天開始來看一些 Layer 的應用吧~如果可以我會努力放上範例程式碼的 ( ˚ཫ˚ )