update at 2026-01-22 21:12:46
This commit is contained in:
@@ -54,6 +54,11 @@ export class ColorResolver {
|
||||
}
|
||||
|
||||
const color = this.resolveColor(layer.colorRef);
|
||||
if (typeof layer.num === 'number' && layer.num > 0) {
|
||||
const interval = layer.interval ?? 0;
|
||||
return applyPatternColoring(layer.divisions, color, layer.num, interval);
|
||||
}
|
||||
|
||||
for (let i = 0; i < layer.divisions; i++) {
|
||||
colorMap.set(i, color);
|
||||
}
|
||||
|
||||
@@ -27,20 +27,37 @@ describe('colorResolver', () => {
|
||||
expect(map.has(5)).toBe(false);
|
||||
});
|
||||
|
||||
it('resolveLayerColors 在提供 colorRef 时覆盖全部扇区', () => {
|
||||
it('resolveLayerColors 在提供 colorRef 且无 num 时覆盖全部扇区', () => {
|
||||
const resolver = new ColorResolver(theme, '#000000');
|
||||
const layer: SectorLayerConfig = {
|
||||
divisions: 4,
|
||||
rInner: 0,
|
||||
rOuter: 10,
|
||||
colorRef: '火',
|
||||
};
|
||||
const map = resolver.resolveLayerColors(layer);
|
||||
expect(map.size).toBe(4);
|
||||
expect(map.get(0)).toBe('#E53935');
|
||||
expect(map.get(3)).toBe('#E53935');
|
||||
});
|
||||
|
||||
it('resolveLayerColors 在提供 num 时使用规律填色', () => {
|
||||
const resolver = new ColorResolver(theme, '#000000');
|
||||
const layer: SectorLayerConfig = {
|
||||
divisions: 6,
|
||||
rInner: 0,
|
||||
rOuter: 10,
|
||||
colorRef: '火',
|
||||
num: 2,
|
||||
interval: 1,
|
||||
};
|
||||
const map = resolver.resolveLayerColors(layer);
|
||||
expect(map.size).toBe(4);
|
||||
expect(map.get(0)).toBe('#E53935');
|
||||
expect(map.get(3)).toBe('#E53935');
|
||||
expect(map.has(0)).toBe(true);
|
||||
expect(map.has(1)).toBe(true);
|
||||
expect(map.has(2)).toBe(false);
|
||||
expect(map.has(3)).toBe(true);
|
||||
expect(map.has(4)).toBe(true);
|
||||
expect(map.has(5)).toBe(false);
|
||||
});
|
||||
|
||||
it('resolveSectorColor 应遵循 sector > layer > background 优先级', () => {
|
||||
|
||||
Reference in New Issue
Block a user