formatLayerData()

in src/layers/h3-hexagon-layer/h3-hexagon-layer.js [157:212]


  formatLayerData(datasets, oldLayerData, opt = {}) {
    const {
      colorScale,
      colorDomain,
      colorField,
      color,
      sizeField,
      sizeScale,
      sizeDomain,
      coverageField,
      coverageScale,
      coverageDomain,
      visConfig: {sizeRange, colorRange, coverageRange, enable3d}
    } = this.config;

    const {gpuFilter} = datasets[this.config.dataId];
    const getHexId = this.getPositionAccessor();
    const {data} = this.updateData(datasets, oldLayerData);
    // color
    const cScale =
      colorField &&
      this.getVisChannelScale(
        colorScale,
        colorDomain,
        colorRange.colors.map(c => hexToRgb(c))
      );

    // height
    const sScale =
      sizeField && enable3d && this.getVisChannelScale(sizeScale, sizeDomain, sizeRange, 0);

    // coverage
    const coScale =
      coverageField && this.getVisChannelScale(coverageScale, coverageDomain, coverageRange, 0);

    const getElevation = sScale
      ? d => this.getEncodedChannelValue(sScale, d.data, sizeField, 0)
      : defaultElevation;

    const getFillColor = cScale
      ? d => this.getEncodedChannelValue(cScale, d.data, colorField)
      : color;

    const getCoverage = coScale
      ? d => this.getEncodedChannelValue(coScale, d.data, coverageField, 0)
      : defaultCoverage;

    return {
      data,
      getElevation,
      getFillColor,
      getHexId,
      getCoverage,
      getFilterValue: gpuFilter.filterValueAccessor()
    };
  }