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

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
在沒有看到您的風格或 tilesets 的結構的情況下,很難給出具體的建議。
但是,根據您對設置的描述,我相信您可以通過使用靜態圖像 API 的查詢字符串參數動態生成路線樣式層來實現“重新著色路線”的目標addlayer
。addlayer
之所以強大,主要是因為它允許您在請求時充分利用樣式表達式來設置地圖數據的樣式。(注意:此建議假設您的路線具有一些顯著特征。)
mapbox/streets-v11
作為概念的快速證明,這里是采用樣式并添加新樣式層的靜態圖像請求。該層使用match
表達式根據道路的“類別”為道路著色:
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
產生以下結果:
添加回答
舉報
0/150
提交
取消