MapBox 中的 Source、Layer 和 Tileset 有什么区别?

Nac*_*bre 3 javascript geojson mapbox mapbox-gl-js mapbox-api-tilequery

我目前正在研究一段代码,它使用 MapBox GL JS 并有一个看起来像这样的 addSource() 函数

this.mapAdapter.map.addSource(`${this.asset.uuid}-data`, {
        type: 'geojson',
        data: this.getMapboxGeometry(),
      })
Run Code Online (Sandbox Code Playgroud)

另一个 addLayer() 函数看起来像这样

this.mapAdapter.map.addLayer({
        id: `${this.asset.uuid}-polygon`,
        type: 'fill',
        source: `${this.asset.uuid}-data`,
        filter: ['==', '$type', 'Polygon'],
        }
Run Code Online (Sandbox Code Playgroud)

我想知道源和层之间的区别是什么。我似乎找不到合适的明确定义。

特征采集的代码如下

 type: 'FeatureCollection',
  features: [
    {
      type: 'Feature',
      properties: {},
      geometry: {
        type: 'Polygon',
      ...}
Run Code Online (Sandbox Code Playgroud)

图层是否以某种方式与要素集合相关?

图块集是来源的另一个名称还是完全不同?

tyl*_*ben 7

我想知道源和层之间的区别是什么。我似乎找不到合适的明确定义。

当我开始学习 Mapbox 时,我在试图理解源、图层、日期集、图块集、样式等之间的差异时遇到了非常相似的挣扎。Mapbox 提供了多少以及他们有多少文档真是太棒了,但很容易迷失在噪音中。

我认为是我的地图的迷你数据存储,而图层则是源的可视化表示。添加源告诉 Mapbox “嘿,这是一个包含或更多可以添加到地图的图层的数据存储”。当您向地图添加图层时,您将其指向源并告诉 Mapbox 如何在地图上表示源。

将源添加到地图后,您可以使用它创建任意数量的图层。例如,如果我添加一个包含城市公园的源,我可以从该单个源创建以下三个图层。

  • fill将公园边界表示为阴影多边形的图层
  • line将边界表示为轮廓的图层
  • symbol将公园名称显示为文本标签的图层

我写了一个 Mapbox 和 React Deep Dives 系列,更深入地介绍了这一点。这里有一些与您的问题非常相关的帖子。