formatLayerData()

in src/layers/s2-geometry-layer/s2-geometry-layer.js [194:261]


  formatLayerData(datasets, oldLayerData, opt = {}) {
    const {
      colorScale,
      colorDomain,
      colorField,
      color,
      heightField,
      heightDomain,
      heightScale,
      strokeColorField,
      strokeColorScale,
      strokeColorDomain,
      sizeScale,
      sizeDomain,
      sizeField,
      visConfig
    } = this.config;

    const {
      enable3d,
      stroked,
      colorRange,
      heightRange,
      sizeRange,
      strokeColorRange,
      strokeColor
    } = visConfig;

    const {gpuFilter} = datasets[this.config.dataId];
    const getS2Token = this.getPositionAccessor();
    const {data} = this.updateData(datasets, oldLayerData);

    const cScale =
      colorField &&
      this.getVisChannelScale(colorScale, colorDomain, colorRange.colors.map(hexToRgb));

    // calculate elevation scale - if extruded = true
    const eScale =
      heightField && enable3d && this.getVisChannelScale(heightScale, heightDomain, heightRange);

    // stroke color
    const scScale =
      strokeColorField &&
      this.getVisChannelScale(
        strokeColorScale,
        strokeColorDomain,
        strokeColorRange.colors.map(hexToRgb)
      );

    // calculate stroke scale - if stroked = true
    const sScale =
      sizeField && stroked && this.getVisChannelScale(sizeScale, sizeDomain, sizeRange);

    return {
      data,
      getS2Token,
      getLineColor: d =>
        scScale
          ? this.getEncodedChannelValue(scScale, d.data, strokeColorField)
          : strokeColor || color,
      getLineWidth: d =>
        sScale ? this.getEncodedChannelValue(sScale, d.data, sizeField, 0) : defaultLineWidth,
      getFillColor: d => (cScale ? this.getEncodedChannelValue(cScale, d.data, colorField) : color),
      getElevation: d =>
        eScale ? this.getEncodedChannelValue(eScale, d.data, heightField, 0) : defaultElevation,
      getFilterValue: gpuFilter.filterValueAccessor()
    };
  }