File tree Expand file tree Collapse file tree 1 file changed +14
-3
lines changed
src/openlayers/overlay/vectortile Expand file tree Collapse file tree 1 file changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -83,10 +83,21 @@ export class VectorTileStyles extends Observable {
83
83
cartoCss = cartoCss . replace ( / [ @ ] / gi, "___" ) ;
84
84
cartoCss = cartoCss . replace ( / \\ # / gi, "___" ) ;
85
85
//替换一些关键符号
86
- for ( var attr in layersInfo ) {
86
+ var cachedLayer = { } ;
87
+ layersInfo && Object . keys ( layersInfo ) . sort ( ) . forEach ( function ( attr ) {
87
88
var newAttr = attr . replace ( / [ @ # \s ] / gi, "___" ) ;
88
- cartoCss = cartoCss . replace ( attr . replace ( / [ # ] / gi, "\\#" ) , newAttr ) ;
89
- }
89
+ var to = attr ;
90
+ var keys = Object . keys ( cachedLayer ) ;
91
+ for ( let index = keys . length ; index > - 1 ; index -- ) {
92
+ if ( attr . indexOf ( keys [ index ] ) > - 1 ) {
93
+ to = attr . replace ( keys [ index ] , cachedLayer [ keys [ index ] ] ) ;
94
+ break ;
95
+ }
96
+ }
97
+ to = to . replace ( / [ # ] / gi, "\#" ) ;
98
+ cachedLayer [ attr ] = newAttr ;
99
+ cartoCss = cartoCss . replace ( new RegExp ( to , "g" ) , newAttr ) ;
100
+ } )
90
101
cartoCss = cartoCss . replace ( / [ # ] / gi, "\n#" ) ;
91
102
//将zoom转化为scale,以免引起混淆
92
103
cartoCss = cartoCss . replace ( / \[ z o o m / gi, "[scale" ) ;
You can’t perform that action at this time.
0 commit comments