我正在使用 Mapbox 的靜態(tài)圖像 API 生成我在過去幾天運(yùn)行的路線圖像。由于 URL 字符限制,我將采用 tileset 路線:每次運(yùn)行都作為 Tileset Source 上傳,我有一個將它們混合在一起的配方,然后我發(fā)布一個具有多個層的 Tileset。我希望能夠調(diào)用靜態(tài)圖像 API 并告訴它(例如)將 layer_01 設(shè)置為“紅色”,將 [layer_02、layer_03] 設(shè)置為“灰色”。使用 addLayer 可以自定義顏色,但我無法弄清楚如何從同一個 tileset 調(diào)用多個圖層。這可能嗎?如果不是,我是否需要將所有圖層添加到自定義樣式,并在每次調(diào)用前用新顏色重新發(fā)布它?必須不斷重建樣式,這似乎非常麻煩。
1 回答

胡子哥哥
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個贊
在沒有看到您的風(fēng)格或 tilesets 的結(jié)構(gòu)的情況下,很難給出具體的建議。
但是,根據(jù)您對設(shè)置的描述,我相信您可以通過使用靜態(tài)圖像 API 的查詢字符串參數(shù)動態(tài)生成路線樣式層來實(shí)現(xiàn)“重新著色路線”的目標(biāo)addlayer
。addlayer
之所以強(qiáng)大,主要是因?yàn)樗试S您在請求時充分利用樣式表達(dá)式來設(shè)置地圖數(shù)據(jù)的樣式。(注意:此建議假設(shè)您的路線具有一些顯著特征。)
mapbox/streets-v11
作為概念的快速證明,這里是采用樣式并添加新樣式層的靜態(tài)圖像請求。該層使用match
表達(dá)式根據(jù)道路的“類別”為道路著色:
https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/-122,36.99,11/300x300?before_layer=road-number-shield&addlayer={%22id%22:%22road-overlay%22,%22type%22:%22line%22,%22source%22:%22composite%22,%22source-layer%22:%22road%22,%22paint%22:{%22line-color%22:%20[%22match%22,%20[%22get%22,%20%22class%22],%20%22motorway%22,%20%22%23ff0000%22,%20%22primary%22,%20%22%23FFFF00%22,%20%22secondary%22,%20%22%23FF00FF%22,%20%22street%22,%20%22%2300FFFF%22,%20%22%23FFFFFF%22],%22line-width%22:2}}&access_token=your.tk
產(chǎn)生以下結(jié)果:
添加回答
舉報(bào)
0/150
提交
取消