Skip to content

Commit 95c2506

Browse files
committed
【feature】1) 将转换ui key和mapbox key的代码移除;
2)切换符号,不用所有的key循环设置 => 拿到前一个符号的key和当前符号的key,设置这些key样式值
1 parent b991f43 commit 95c2506

File tree

9 files changed

+51
-280
lines changed

9 files changed

+51
-280
lines changed

examples/mapboxgl-v2/src/modules/style-setting-panel/CircleStyleSetting.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,18 @@ const CircleStyleSetting = (props: CircleStyleSettingProps) => {
2626

2727
useEffect(() => {
2828
setStyle({
29-
radius: getLayerPropertyStyle(layerId, 'radius'),
30-
color: getLayerPropertyStyle(layerId, 'color'),
31-
opacity: getLayerPropertyStyle(layerId, 'opacity'),
32-
blur: getLayerPropertyStyle(layerId, 'blur'),
33-
strokeColor: getLayerPropertyStyle(layerId, 'strokeColor'),
34-
strokeOpacity: getLayerPropertyStyle(layerId, 'strokeOpacity'),
35-
strokeWidth: getLayerPropertyStyle(layerId, 'strokeWidth'),
36-
translate: getLayerPropertyStyle(layerId, 'translate')
29+
radius: getLayerPropertyStyle(layerId, 'radius') ?? defaultStyle.radius,
30+
color: getLayerPropertyStyle(layerId, 'color') ?? defaultStyle.color,
31+
opacity: getLayerPropertyStyle(layerId, 'opacity') ?? defaultStyle.opacity,
32+
blur: getLayerPropertyStyle(layerId, 'blur') ?? defaultStyle.blur,
33+
strokeColor: getLayerPropertyStyle(layerId, 'strokeColor') ?? defaultStyle.strokeColor,
34+
strokeOpacity: getLayerPropertyStyle(layerId, 'strokeOpacity') ?? defaultStyle.strokeOpacity,
35+
strokeWidth: getLayerPropertyStyle(layerId, 'strokeWidth') ?? defaultStyle.strokeWidth,
36+
translate: getLayerPropertyStyle(layerId, 'translate') ?? defaultStyle.translate
3737
});
3838
}, [layerId]);
3939

40-
const { radius, color, translate, opacity, blur, strokeColor, strokeOpacity, strokeWidth } = style;
40+
const { radius, color, translate=[], opacity, blur, strokeColor, strokeOpacity, strokeWidth } = style;
4141

4242
const changeStyle = (key, value): void => {
4343
changeLayerStyle(layerId, key, value);

examples/mapboxgl-v2/src/modules/style-setting-panel/LineStyleSetting.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const LineStyleSetting = (props: LineStyleSettingProps) => {
2323
let bottomBoundary;
2424
lineIds.forEach((id) => {
2525
const width = getLayerPropertyStyle(id, 'width');
26-
const offset = getLayerPropertyStyle(id, 'offset');
26+
const offset = getLayerPropertyStyle(id, 'offset') ?? 0;
2727
const top = offset + width / 2;
2828
const bottom = offset - width / 2;
2929
(top > topBoundary || topBoundary === undefined) && (topBoundary = top);

examples/mapboxgl-v2/src/modules/style-setting-panel/PointStyleSetting.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const PointStyleSetting = (props: PointStyleSettingProps) => {
1919
const { changeLayerStyle, layerId, getLayerPropertyStyle, getImageInfo, selectedSymbolId } = props;
2020
const defaultStyle = {
2121
size: 1,
22-
color: '#fff',
22+
color: '#000',
2323
rotate: 0,
2424
opacity: 1,
2525
translate: [0, 0]
@@ -28,16 +28,15 @@ const PointStyleSetting = (props: PointStyleSettingProps) => {
2828

2929
useEffect(() => {
3030
setStyle({
31-
...style,
32-
size: getLayerPropertyStyle(layerId, 'size'),
33-
color: getLayerPropertyStyle(layerId, 'color'),
34-
rotate: getLayerPropertyStyle(layerId, 'rotate'),
35-
opacity: getLayerPropertyStyle(layerId, 'opacity'),
36-
translate: getLayerPropertyStyle(layerId, 'translate')
31+
size: getLayerPropertyStyle(layerId, 'size') ?? defaultStyle.size,
32+
color: getLayerPropertyStyle(layerId, 'color') ?? defaultStyle.color,
33+
rotate: getLayerPropertyStyle(layerId, 'rotate') ?? defaultStyle.rotate,
34+
opacity: getLayerPropertyStyle(layerId, 'opacity') ?? defaultStyle.opacity,
35+
translate: getLayerPropertyStyle(layerId, 'translate') ?? defaultStyle.translate
3736
});
3837
}, [selectedSymbolId]);
3938

40-
const { size, color, translate, rotate, opacity } = style
39+
const { size, color, translate=[], rotate, opacity } = style
4140
const isDataDrivenRotation = isArray(rotate) && isArray(rotate[1]);
4241

4342
const changeStyle = (key, value): void => {

examples/mapboxgl-v2/src/modules/style-setting-panel/PolygonStyleSetting.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ const PolygonStyleSetting = (props: PolygonStyleSettingtProps) => {
2929

3030
useEffect(() => {
3131
setStyle({
32-
color: getLayerPropertyStyle(layerId, 'color'),
33-
opacity: getLayerPropertyStyle(layerId, 'opacity'),
34-
image: getLayerPropertyStyle(layerId, 'image')
32+
color: getLayerPropertyStyle(layerId, 'color') ?? defaultStyle.color,
33+
opacity: getLayerPropertyStyle(layerId, 'opacity') ?? defaultStyle.opacity,
34+
image: getLayerPropertyStyle(layerId, 'image') ?? defaultStyle.image
3535
});
3636
}, [selectedSymbolId]);
3737

examples/mapboxgl-v2/src/modules/style-setting-panel/SingleLineStyleSetting.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,19 @@ const SingleLineStyleSetting = (props: SingleLineStyleContentProps) => {
4444

4545
useEffect(() => {
4646
setStyle({
47-
width: getLayerPropertyStyle(layerId, 'width'),
48-
color: getLayerPropertyStyle(layerId, 'color'),
49-
offset: getLayerPropertyStyle(layerId, 'offset'),
50-
opacity: getLayerPropertyStyle(layerId, 'opacity'),
51-
blur: getLayerPropertyStyle(layerId, 'blur'),
52-
join: getLayerPropertyStyle(layerId, 'join'),
53-
cap: getLayerPropertyStyle(layerId, 'cap'),
54-
translate: getLayerPropertyStyle(layerId, 'translate'),
55-
image: getLayerPropertyStyle(layerId, 'image')
47+
width: getLayerPropertyStyle(layerId, 'width') ?? defaultStyle.width,
48+
color: getLayerPropertyStyle(layerId, 'color') ?? defaultStyle.color,
49+
offset: getLayerPropertyStyle(layerId, 'offset') ?? defaultStyle.offset,
50+
opacity: getLayerPropertyStyle(layerId, 'opacity') ?? defaultStyle.opacity,
51+
blur: getLayerPropertyStyle(layerId, 'blur') ?? defaultStyle.blur,
52+
join: getLayerPropertyStyle(layerId, 'join') ?? defaultStyle.join,
53+
cap: getLayerPropertyStyle(layerId, 'cap') ?? defaultStyle.cap,
54+
translate: getLayerPropertyStyle(layerId, 'translate') ?? defaultStyle.translate,
55+
image: getLayerPropertyStyle(layerId, 'image') ?? defaultStyle.image
5656
});
5757
}, [layerId, selectedSymbolId, wholeWidth]);
5858

59-
const { width, color, offset, opacity, blur, join, cap, translate, image } = style;
59+
const { width, color, offset, opacity, blur, join, cap, translate=[], image } = style;
6060

6161

6262
return (

examples/mapboxgl-v2/src/modules/style-setting-panel/TextStyleSetting.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,20 @@ const TextStyleSetting = (props: TextStyleSettingProps) => {
3131

3232
useEffect(() => {
3333
setStyle({
34-
size: getLayerPropertyStyle(layerId, 'size'),
35-
color: getLayerPropertyStyle(layerId, 'color'),
36-
opacity: getLayerPropertyStyle(layerId, 'opacity'),
37-
anchor: getLayerPropertyStyle(layerId, 'anchor'),
38-
allowOverlap: getLayerPropertyStyle(layerId, 'allowOverlap'),
39-
haloWidth: getLayerPropertyStyle(layerId, 'haloWidth'),
40-
spacing: getLayerPropertyStyle(layerId, 'spacing'),
41-
fontFamily: getLayerPropertyStyle(layerId, 'fontFamily'),
42-
field: getLayerPropertyStyle(layerId, 'field'),
43-
translate: getLayerPropertyStyle(layerId, 'translate')
34+
size: getLayerPropertyStyle(layerId, 'size') ?? defaultStyle.size,
35+
color: getLayerPropertyStyle(layerId, 'color') ?? defaultStyle.color,
36+
opacity: getLayerPropertyStyle(layerId, 'opacity') ?? defaultStyle.opacity,
37+
anchor: getLayerPropertyStyle(layerId, 'anchor') ?? defaultStyle.anchor,
38+
allowOverlap: getLayerPropertyStyle(layerId, 'allowOverlap') ?? defaultStyle.allowOverlap,
39+
haloWidth: getLayerPropertyStyle(layerId, 'haloWidth') ?? defaultStyle.haloWidth,
40+
spacing: getLayerPropertyStyle(layerId, 'spacing') ?? defaultStyle.spacing,
41+
fontFamily: getLayerPropertyStyle(layerId, 'fontFamily') ?? defaultStyle.fontFamily,
42+
field: getLayerPropertyStyle(layerId, 'field') ?? defaultStyle.field,
43+
translate: getLayerPropertyStyle(layerId, 'translate') ?? defaultStyle.translate
4444
});
4545
}, [layerId]);
4646

47-
const { size, color, opacity, anchor, allowOverlap, haloWidth, spacing, fontFamily, field, translate } = style;
47+
const { size, color, opacity, anchor, allowOverlap, haloWidth, spacing, fontFamily, field, translate=[] } = style;
4848

4949
const changeStyle = (key, value): void => {
5050
changeLayerStyle(layerId, key, value);

src/common/commontypes/symbol/DefaultValue.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { number } from "../../../../libs/echarts/echarts-en"
2-
31
const COMMON_DEFAULT_VALUE = {
42
color: '#000',
53
opacity: 1,

src/symbol/MapboxSymbolLayerManager.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,13 @@ const MapboxSymbolLayerManager = (m) => {
7474
*/
7575
symbolToLayerStyle(symbol) {
7676
const type = this.getSymbolType(symbol);
77-
return TRANSFORM_SYMBOL_RULE[type]?.(symbol) ?? {};
77+
const {paint, layout} = symbol;
78+
return {
79+
type,
80+
paint,
81+
layout
82+
}
83+
// return TRANSFORM_SYMBOL_RULE[type]?.(symbol) ?? {};
7884
},
7985

8086
/**
@@ -154,13 +160,13 @@ const MapboxSymbolLayerManager = (m) => {
154160
setSimpleSymbol(layerId, oldSymbol, symbol) {
155161
const {paint: oldPaint = {}, layout: oldLayout = {}} = oldSymbol;
156162
const layerInfo = this.symbolToLayerStyle(symbol);
157-
const {paint, layout} = layerInfo, paintKeys = Object.keys(paint).concat(Object.keys(oldPaint)),
163+
const {paint = {}, layout = {}} = layerInfo, paintKeys = Object.keys(paint).concat(Object.keys(oldPaint)),
158164
layoutKeys = Object.keys(layout).concat(Object.keys(oldLayout));
159165

160-
paintKeys.forEach(key => {
166+
Array.from(new Set(paintKeys)).forEach(key => {
161167
map.setPaintProperty(layerId, key, paint[key]);
162168
});
163-
layoutKeys.forEach(key => {
169+
Array.from(new Set(layoutKeys)).forEach(key => {
164170
map.setLayoutProperty(layerId, key, layout[key]);
165171
});
166172
},

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy