有没有办法在 Mapbox 静态图像 API 中设置多层过滤器?

T L*_*T L 5 mapbox

我正在使用mapbox 静态图像 API。我的风格有两层,我试图根据请求进行过滤。该文档似乎只提供了一个“setfilter”和一个“layer_id”属性,表明我只能过滤其中一层。

是否可以在静态图像 API 中过滤两层(或三层、四层)?我希望能够在请求中用逗号分隔 layer_id 和/或 setfilter 参数来处理这种情况。

他们在文档中提供的用于设置过滤器的示例请求是:

https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/-91,60,2/800x600?access_token=YOUR_MAPBOX_ACCESS_TOKEN&setfilter=["==","name_en","Canada"]&layer_id=country-label
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似的东西:

https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/-91,60,2/800x600?access_token=YOUR_MAPBOX_ACCESS_TOKEN&setfilters=["==","name_en","Canada"],["==","name","New York"]&layer_ids=country-label,state-label
Run Code Online (Sandbox Code Playgroud)

FWIW,我当前的解决方法是对其中一个层使用覆盖层来形成我需要过滤的 geojson 对象,但它很老套,并且对我可以添加到请求中的数量有上限,我必须简化 geojson请求的简洁性。

Mor*_*itz 4

遗憾的是,没有直接的方法可以在对静态图像 API 的请求中引用多个图层。

作为解决方法,您可以在 Mapbox Studio 中创建一个新的样式图层,该图层组合了您想要应用过滤器的所有图层。然后,您可以在该层上使用setfilter来实现跨这些多层的过滤,请参阅此处的文档