@@ -227,19 +227,20 @@ proto.updateBaseLayers = function(fullLayout, geoLayout) {
227
227
return ( d === 'lonaxis' || d === 'lataxis' ) ;
228
228
}
229
229
230
- function isTopoLayer ( d ) {
231
- return (
232
- constants . fillLayers . indexOf ( d ) !== - 1 ||
233
- constants . lineLayers . indexOf ( d ) !== - 1
234
- ) ;
230
+ function isLineLayer ( d ) {
231
+ return Boolean ( constants . lineLayers [ d ] ) ;
232
+ }
233
+
234
+ function isFillLayer ( d ) {
235
+ return Boolean ( constants . fillLayers [ d ] ) ;
235
236
}
236
237
237
238
var allLayers = this . hasChoropleth ?
238
239
constants . layersForChoropleth :
239
240
constants . layers ;
240
241
241
242
var layerData = allLayers . filter ( function ( d ) {
242
- return isTopoLayer ( d ) ? geoLayout [ 'show' + d ] :
243
+ return ( isLineLayer ( d ) || isFillLayer ( d ) ) ? geoLayout [ 'show' + d ] :
243
244
isAxisLayer ( d ) ? geoLayout [ d ] . showgrid :
244
245
true ;
245
246
} ) ;
@@ -259,15 +260,23 @@ proto.updateBaseLayers = function(fullLayout, geoLayout) {
259
260
var layer = layers [ d ] = d3 . select ( this ) ;
260
261
261
262
if ( d === 'bg' ) {
262
- _this . bgRect = layer . append ( 'rect' ) . style ( 'pointer-events' , 'all' ) ;
263
+ _this . bgRect = layer . append ( 'rect' )
264
+ . style ( 'pointer-events' , 'all' ) ;
263
265
} else if ( isAxisLayer ( d ) ) {
264
- basePaths [ d ] = layer . append ( 'path' ) ;
266
+ basePaths [ d ] = layer . append ( 'path' )
267
+ . style ( 'fill' , 'none' ) ;
265
268
} else if ( d === 'backplot' ) {
266
- layer . append ( 'g' ) . classed ( 'choroplethlayer' , true ) ;
269
+ layer . append ( 'g' )
270
+ . classed ( 'choroplethlayer' , true ) ;
267
271
} else if ( d === 'frontplot' ) {
268
- layer . append ( 'g' ) . classed ( 'scatterlayer' , true ) ;
269
- } else if ( isTopoLayer ( d ) ) {
270
- basePaths [ d ] = layer . append ( 'path' ) ;
272
+ layer . append ( 'g' )
273
+ . classed ( 'scatterlayer' , true ) ;
274
+ } else if ( isLineLayer ( d ) ) {
275
+ basePaths [ d ] = layer . append ( 'path' )
276
+ . style ( 'fill' , 'none' ) ;
277
+ } else if ( isFillLayer ( d ) ) {
278
+ basePaths [ d ] = layer . append ( 'path' )
279
+ . style ( 'stroke' , 'none' ) ;
271
280
}
272
281
} ) ;
273
282
@@ -279,22 +288,19 @@ proto.updateBaseLayers = function(fullLayout, geoLayout) {
279
288
280
289
if ( d === 'frame' ) {
281
290
path . datum ( constants . sphereSVG ) ;
282
- } else if ( isTopoLayer ( d ) ) {
291
+ } else if ( isLineLayer ( d ) || isFillLayer ( d ) ) {
283
292
path . datum ( topojsonFeature ( topojson , topojson . objects [ d ] ) ) ;
284
293
} else if ( isAxisLayer ( d ) ) {
285
294
path . datum ( makeGraticule ( d , geoLayout ) )
286
- . attr ( 'fill' , 'none' )
287
295
. call ( Color . stroke , geoLayout [ d ] . gridcolor )
288
296
. call ( Drawing . dashLine , '' , geoLayout [ d ] . gridwidth ) ;
289
297
}
290
298
291
- if ( constants . fillLayers . indexOf ( d ) !== - 1 ) {
292
- path . attr ( 'stroke' , 'none' )
293
- . call ( Color . fill , geoLayout [ adj + 'color' ] ) ;
294
- } else if ( constants . lineLayers . indexOf ( d ) !== - 1 ) {
295
- path . attr ( 'fill' , 'none' )
296
- . call ( Color . stroke , geoLayout [ adj + 'color' ] )
299
+ if ( isLineLayer ( d ) ) {
300
+ path . call ( Color . stroke , geoLayout [ adj + 'color' ] )
297
301
. call ( Drawing . dashLine , '' , geoLayout [ adj + 'width' ] ) ;
302
+ } else if ( isFillLayer ( d ) ) {
303
+ path . call ( Color . fill , geoLayout [ adj + 'color' ] ) ;
298
304
}
299
305
} ) ;
300
306
} ;
0 commit comments