【问题标题】:Mapbox api error message: layer source not foundMapbox api 错误信息:未找到图层源
【发布时间】:2021-03-12 21:44:11
【问题描述】:

我们一直很高兴地使用 MapBox Studio,现在我们正试图通过与 mapbox api 交互来进一步推动事情。

我正在尝试请求更新样式以隐藏/显示图层,但出现错误:

{
    "message": "layers[0]: source \"composite\" not found"
}

这是我的 json 正文请求负载:

{
   "version":8,
   "name":"OnStreet-V2",
   "layers":[
      {
         "id":"pay_ds-torres-vedras-livre",
         "type": "fill",
         "source": "composite",
         "source-layer": "Estacionamento_Livre",
         "layout":{
            "visibility":"none"
         }
      }
   ]
}

这更奇怪,因为为了确保我有正确的源和源层信息,我从 mapbox studio 下载了我的样式的 json 定义,在那里我得到了以下信息:

{
    "id": "pay_ds-torres-vedras-livre",
    "type": "fill",
    "source": "composite",
    "source-layer": "Estacionamento_Livre",
    "layout": {},
    `enter code here`"paint": {"fill-color": "hsl(101, 53%, 41%)", "fill-opacity": 0.3}
}

我也做了一些研究,但找不到这个具体问题。源合成也在设置中。

我正在使用邮递员来测试 api 调用。

【问题讨论】:

    标签: mapbox


    【解决方案1】:

    您收到的错误是因为您的请求的样式负载不包含 “sources” parameter 以及样式层引用的“复合”源的定义。

    例如,mapbox的一些核心样式中的“sources”参数如下所示:

    “sources":
      {
        "composite":
          {
            "url":"mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2",
            "type":"vector"
          }
      }
    

    此字段是必需的,因为它将告诉您正在使用的任何渲染客户端(GL JS、移动 SDK 等)为了正确渲染您的样式的图层需要哪些数据。

    【讨论】:

    • 谢谢!那确实是缺失的。现在请求返回 httpStatus ok (200),但是没有变化。我发送了一个将图层可见性设置为无(隐藏图层)的请求,但是当我返回 Mapbox Studio 时仍然可见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    相关资源
    最近更新 更多