in src/layers/point-layer/point-layer.js [190:255]
formatLayerData(datasets, oldLayerData) {
const {
colorScale,
colorDomain,
colorField,
strokeColorField,
strokeColorScale,
strokeColorDomain,
color,
sizeField,
sizeScale,
sizeDomain,
textLabel,
visConfig: {radiusRange, fixedRadius, colorRange, strokeColorRange, strokeColor}
} = this.config;
const {gpuFilter} = datasets[this.config.dataId];
const {data, triggerChanged} = this.updateData(datasets, oldLayerData);
const getPosition = this.getPositionAccessor();
// point color
const cScale =
colorField &&
this.getVisChannelScale(colorScale, colorDomain, colorRange.colors.map(hexToRgb));
// stroke color
const scScale =
strokeColorField &&
this.getVisChannelScale(
strokeColorScale,
strokeColorDomain,
strokeColorRange.colors.map(hexToRgb)
);
// point radius
const rScale =
sizeField && this.getVisChannelScale(sizeScale, sizeDomain, radiusRange, fixedRadius);
const getRadius = rScale ? d => this.getEncodedChannelValue(rScale, d.data, sizeField, 0) : 1;
const getFillColor = cScale
? d => this.getEncodedChannelValue(cScale, d.data, colorField)
: color;
const getLineColor = scScale
? d => this.getEncodedChannelValue(scScale, d.data, strokeColorField)
: strokeColor || color;
// get all distinct characters in the text labels
const textLabels = formatTextLabelData({
textLabel,
triggerChanged,
oldLayerData,
data
});
return {
data,
getPosition,
getFillColor,
getLineColor,
getFilterValue: gpuFilter.filterValueAccessor(),
getRadius,
textLabels
};
}