Skip to content

Commit 5640c5b

Browse files
committed
[fix] 补充isPaintKey判断
review by huzhipeng
1 parent c607483 commit 5640c5b

File tree

2 files changed

+247
-29
lines changed

2 files changed

+247
-29
lines changed

src/mapboxgl/overlay/symbol/SymbolUtil.js

Lines changed: 124 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -174,38 +174,147 @@ export function validateSymbol(symbol) {
174174
return validateStyleKey(s.paint || {}) && validateStyleKey(s.layout || {});
175175
});
176176
}
177-
177+
// 来源于 mapboxgl.AnyPaint
178178
export const isPaintKey = (key) => {
179179
return [
180-
'icon-color',
181-
'icon-opacity',
182-
'icon-translate',
180+
// BackgroundPaint
181+
'background-color',
182+
'background-color-transition',
183+
'background-pattern',
184+
'background-pattern-transition',
185+
'background-opacity',
186+
'background-opacity-transition',
187+
// FillPaint
188+
'fill-antialias',
189+
'fill-opacity',
190+
'fill-opacity-transition',
191+
'fill-color',
192+
'fill-color-transition',
193+
'fill-outline-color',
194+
'fill-outline-color-transition',
195+
'fill-translate',
196+
'fill-translate-transition',
197+
'fill-translate-anchor',
198+
'fill-pattern',
199+
'fill-pattern-transition',
200+
// FillExtrusionPaint
201+
'fill-extrusion-opacity',
202+
'fill-extrusion-opacity-transition',
203+
'fill-extrusion-color',
204+
'fill-extrusion-color-transition',
205+
'fill-extrusion-translate',
206+
'fill-extrusion-translate-transition',
207+
'fill-extrusion-translate-anchor',
208+
'fill-extrusion-pattern',
209+
'fill-extrusion-pattern-transition',
210+
'fill-extrusion-height',
211+
'fill-extrusion-height-transition',
212+
'fill-extrusion-base',
213+
'fill-extrusion-base-transition',
214+
'fill-extrusion-vertical-gradient',
215+
// LinePaint
183216
'line-opacity',
184-
'line-blur',
185-
'line-translate',
217+
'line-opacity-transition',
186218
'line-color',
219+
'line-color-transition',
220+
'line-translate',
221+
'line-translate-transition',
222+
'line-translate-anchor',
187223
'line-width',
224+
'line-width-transition',
225+
'line-gap-width',
226+
'line-gap-width-transition',
188227
'line-offset',
228+
'line-offset-transition',
229+
'line-blur',
230+
'line-blur-transition',
189231
'line-dasharray',
232+
'line-dasharray-transition',
190233
'line-pattern',
191-
'fill-color',
192-
'fill-opacity',
193-
'fill-pattern',
194-
'fill-outline-color',
234+
'line-pattern-transition',
235+
'line-gradient',
236+
// SymbolPaint
237+
'icon-opacity',
238+
'icon-opacity-transition',
239+
'icon-color',
240+
'icon-color-transition',
241+
'icon-halo-color',
242+
'icon-halo-color-transition',
243+
'icon-halo-width',
244+
'icon-halo-width-transition',
245+
'icon-halo-blur',
246+
'icon-halo-blur-transition',
247+
'icon-translate',
248+
'icon-translate-transition',
249+
'icon-translate-anchor',
250+
'text-opacity',
251+
'text-opacity-transition',
195252
'text-color',
196-
'text-halo-blur',
253+
'text-color-transition',
197254
'text-halo-color',
255+
'text-halo-color-transition',
198256
'text-halo-width',
199-
'text-opacity',
257+
'text-halo-width-transition',
258+
'text-halo-blur',
259+
'text-halo-blur-transition',
200260
'text-translate',
261+
'text-translate-transition',
201262
'text-translate-anchor',
202-
'circle-blur',
263+
// RasterPaint
264+
'raster-opacity',
265+
'raster-opacity-transition',
266+
'raster-hue-rotate',
267+
'raster-hue-rotate-transition',
268+
'raster-brightness-min',
269+
'raster-brightness-min-transition',
270+
'raster-brightness-max',
271+
'raster-brightness-max-transition',
272+
'raster-saturation',
273+
'raster-saturation-transition',
274+
'raster-contrast',
275+
'raster-contrast-transition',
276+
'raster-fade-duration',
277+
'raster-resampling',
278+
'circle-sort-key',
279+
// CirclePaint
280+
'circle-radius',
281+
'circle-radius-transition',
203282
'circle-color',
283+
'circle-color-transition',
284+
'circle-blur',
285+
'circle-blur-transition',
204286
'circle-opacity',
287+
'circle-opacity-transition',
205288
'circle-translate',
206-
'circle-radius',
289+
'circle-translate-transition',
290+
'circle-translate-anchor',
291+
'circle-pitch-scale',
292+
'circle-pitch-alignment',
293+
'circle-stroke-width',
294+
'circle-stroke-width-transition',
207295
'circle-stroke-color',
296+
'circle-stroke-color-transition',
208297
'circle-stroke-opacity',
209-
'circle-stroke-width'
298+
'circle-stroke-opacity-transition',
299+
// HeatmapPaint
300+
'heatmap-radius',
301+
'heatmap-radius-transition',
302+
'heatmap-weight',
303+
'heatmap-intensity',
304+
'heatmap-intensity-transition',
305+
'heatmap-color',
306+
'heatmap-opacity',
307+
'heatmap-opacity-transition',
308+
// HillshadePaint
309+
'hillshade-illumination-direction',
310+
'hillshade-illumination-anchor',
311+
'hillshade-exaggeration',
312+
'hillshade-exaggeration-transition',
313+
'hillshade-shadow-color',
314+
'hillshade-shadow-color-transition',
315+
'hillshade-highlight-color',
316+
'hillshade-highlight-color-transition',
317+
'hillshade-accent-color',
318+
'hillshade-accent-color-transition'
210319
].includes(key);
211320
}

src/maplibregl/overlay/symbol/SymbolUtil.js

Lines changed: 123 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -177,35 +177,144 @@ export function validateSymbol(symbol) {
177177

178178
export const isPaintKey = (key) => {
179179
return [
180-
'icon-color',
181-
'icon-opacity',
182-
'icon-translate',
180+
// BackgroundPaint
181+
'background-color',
182+
'background-color-transition',
183+
'background-pattern',
184+
'background-pattern-transition',
185+
'background-opacity',
186+
'background-opacity-transition',
187+
// FillPaint
188+
'fill-antialias',
189+
'fill-opacity',
190+
'fill-opacity-transition',
191+
'fill-color',
192+
'fill-color-transition',
193+
'fill-outline-color',
194+
'fill-outline-color-transition',
195+
'fill-translate',
196+
'fill-translate-transition',
197+
'fill-translate-anchor',
198+
'fill-pattern',
199+
'fill-pattern-transition',
200+
// FillExtrusionPaint
201+
'fill-extrusion-opacity',
202+
'fill-extrusion-opacity-transition',
203+
'fill-extrusion-color',
204+
'fill-extrusion-color-transition',
205+
'fill-extrusion-translate',
206+
'fill-extrusion-translate-transition',
207+
'fill-extrusion-translate-anchor',
208+
'fill-extrusion-pattern',
209+
'fill-extrusion-pattern-transition',
210+
'fill-extrusion-height',
211+
'fill-extrusion-height-transition',
212+
'fill-extrusion-base',
213+
'fill-extrusion-base-transition',
214+
'fill-extrusion-vertical-gradient',
215+
// LinePaint
183216
'line-opacity',
184-
'line-blur',
185-
'line-translate',
217+
'line-opacity-transition',
186218
'line-color',
219+
'line-color-transition',
220+
'line-translate',
221+
'line-translate-transition',
222+
'line-translate-anchor',
187223
'line-width',
224+
'line-width-transition',
225+
'line-gap-width',
226+
'line-gap-width-transition',
188227
'line-offset',
228+
'line-offset-transition',
229+
'line-blur',
230+
'line-blur-transition',
189231
'line-dasharray',
232+
'line-dasharray-transition',
190233
'line-pattern',
191-
'fill-color',
192-
'fill-opacity',
193-
'fill-pattern',
194-
'fill-outline-color',
234+
'line-pattern-transition',
235+
'line-gradient',
236+
// SymbolPaint
237+
'icon-opacity',
238+
'icon-opacity-transition',
239+
'icon-color',
240+
'icon-color-transition',
241+
'icon-halo-color',
242+
'icon-halo-color-transition',
243+
'icon-halo-width',
244+
'icon-halo-width-transition',
245+
'icon-halo-blur',
246+
'icon-halo-blur-transition',
247+
'icon-translate',
248+
'icon-translate-transition',
249+
'icon-translate-anchor',
250+
'text-opacity',
251+
'text-opacity-transition',
195252
'text-color',
196-
'text-halo-blur',
253+
'text-color-transition',
197254
'text-halo-color',
255+
'text-halo-color-transition',
198256
'text-halo-width',
199-
'text-opacity',
257+
'text-halo-width-transition',
258+
'text-halo-blur',
259+
'text-halo-blur-transition',
200260
'text-translate',
261+
'text-translate-transition',
201262
'text-translate-anchor',
202-
'circle-blur',
263+
// RasterPaint
264+
'raster-opacity',
265+
'raster-opacity-transition',
266+
'raster-hue-rotate',
267+
'raster-hue-rotate-transition',
268+
'raster-brightness-min',
269+
'raster-brightness-min-transition',
270+
'raster-brightness-max',
271+
'raster-brightness-max-transition',
272+
'raster-saturation',
273+
'raster-saturation-transition',
274+
'raster-contrast',
275+
'raster-contrast-transition',
276+
'raster-fade-duration',
277+
'raster-resampling',
278+
'circle-sort-key',
279+
// CirclePaint
280+
'circle-radius',
281+
'circle-radius-transition',
203282
'circle-color',
283+
'circle-color-transition',
284+
'circle-blur',
285+
'circle-blur-transition',
204286
'circle-opacity',
287+
'circle-opacity-transition',
205288
'circle-translate',
206-
'circle-radius',
289+
'circle-translate-transition',
290+
'circle-translate-anchor',
291+
'circle-pitch-scale',
292+
'circle-pitch-alignment',
293+
'circle-stroke-width',
294+
'circle-stroke-width-transition',
207295
'circle-stroke-color',
296+
'circle-stroke-color-transition',
208297
'circle-stroke-opacity',
209-
'circle-stroke-width'
298+
'circle-stroke-opacity-transition',
299+
// HeatmapPaint
300+
'heatmap-radius',
301+
'heatmap-radius-transition',
302+
'heatmap-weight',
303+
'heatmap-intensity',
304+
'heatmap-intensity-transition',
305+
'heatmap-color',
306+
'heatmap-opacity',
307+
'heatmap-opacity-transition',
308+
// HillshadePaint
309+
'hillshade-illumination-direction',
310+
'hillshade-illumination-anchor',
311+
'hillshade-exaggeration',
312+
'hillshade-exaggeration-transition',
313+
'hillshade-shadow-color',
314+
'hillshade-shadow-color-transition',
315+
'hillshade-highlight-color',
316+
'hillshade-highlight-color-transition',
317+
'hillshade-accent-color',
318+
'hillshade-accent-color-transition'
210319
].includes(key);
211320
}

0 commit comments

Comments
 (0)