通过 REST 更新样式的 Mapbox Studio 编辑 API

Mapbox Studio edit of style updated via REST API

我们通过 Mapbox Studio 创建了数据集、图块集和样式

非常简单,只有一层颜色。

然后我们使用 REST API 添加了很多层。

例如,(参考见:https://www.mapbox.com/api-documentation/#update-a-style

style.json 文件包含许多通过 python 脚本生成的新图层。

    "layers": [ 
...
       {"id": "bid_id-WPLNS", "source": "composite", "paint": {"fill-color": "rgba(62,129,54,0.4)"}, "source-layer": "Business_Improvement_Districts", "interactive": true, "filter": ["==", "bid_id", "WPLNS"], "layout": {"visibility": "visible"}, "type": "fill"},
       {"id": "bid_id-WSTSH", "source": "composite", "paint": {"fill-color": "rgba(17,31,177,0.4)"}, "source-layer": "Business_Improvement_Districts", "interactive": true, "filter": ["==", "bid_id", "WSTSH"], "layout": {"visibility": "visible"}, "type": "fill"},
       {"id": "bid_id-WSTSQ", "source": "composite", "paint": {"fill-color": "rgba(143,124,110,0.4)"}, "source-layer": "Business_Improvement_Districts", "interactive": true, "filter": ["==", "bid_id", "WSTSQ"], "layout": {"visibility": "visible"}, "type": "fill"},
...

然后我们发布一个 REST HTTP PATCH 来更新样式:

curl -X PATCH "https://api.mapbox.com/styles/v1/ryozzopanodex/cistmnflb002l2woxcfbgyl3m?access_token=WRITE-TOKEN-HERE" --data @style.json --header "Content-Type:application/json"

为结果:

https://city.tidalforce.org/bid

问题 为什么当我去 Mapbox Studio 编辑样式时,我看不到 REST API 创建的图层?

我只能看到在 Studio 中创建的原始图层。如果我编辑并保存,似乎所有 REST API 创建的层都将被覆盖。

如果有通过 Mapbox Studio 编辑新图层的方法(我们喜欢!),请告诉我们

您可能正在使用 REST API 来更新样式的发布版本,但是当您尝试在 Mapbox Studio 中编辑样式时,您正在查看样式的草稿版本。尝试使用列表或样式视图页面中的 'revert draft to last published' 操作:

revert to last published

然后尝试编辑样式。 Mapbox Studio 会自动为所有样式创建草稿,这样用户就不会不小心破坏生产中使用的样式。对草稿的更改感到满意后,您可以使用样式编辑器中的 'publish' 按钮将草稿更改应用于已发布的样式。