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 {
8383 cartoCss = cartoCss . replace ( / [ @ ] / gi, "___" ) ;
8484 cartoCss = cartoCss . replace ( / \\ # / gi, "___" ) ;
8585 //替换一些关键符号
86- for ( var attr in layersInfo ) {
86+ var cachedLayer = { } ;
87+ layersInfo && Object . keys ( layersInfo ) . sort ( ) . forEach ( function ( attr ) {
8788 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+ } )
90101 cartoCss = cartoCss . replace ( / [ # ] / gi, "\n#" ) ;
91102 //将zoom转化为scale,以免引起混淆
92103 cartoCss = cartoCss . replace ( / \[ z o o m / gi, "[scale" ) ;
You can’t perform that action at this time.
0 commit comments