diff --git a/src/plots/mapbox/layers.js b/src/plots/mapbox/layers.js index 914b30ea3a6..c8f3816b386 100644 --- a/src/plots/mapbox/layers.js +++ b/src/plots/mapbox/layers.js @@ -131,7 +131,7 @@ function isVisible(opts) { return opts.visible && ( Lib.isPlainObject(source) || - (typeof source === 'string' && source.length > 0) + ((typeof source === 'string' || Array.isArray(source)) && source.length > 0) ); } @@ -193,22 +193,34 @@ function convertOpts(opts) { break; } - return { layout: layout, paint: paint }; + return { + layout: layout, + paint: paint + }; } function convertSourceOpts(opts) { var sourceType = opts.sourcetype; var source = opts.source; - var sourceOpts = {type: sourceType}; + var sourceOpts = { + type: sourceType + }; var field; - if(sourceType === 'geojson') { field = 'data'; } else if(sourceType === 'vector') { field = typeof source === 'string' ? 'url' : 'tiles'; + } else if(sourceType === 'raster') { + field = 'tiles'; + sourceOpts.tileSize = 256; + for(var index = 0; index < source.length; index++) { + var url = source[index]; + source[index] = decodeURIComponent(url); + } } sourceOpts[field] = source; + return sourceOpts; } diff --git a/src/plots/mapbox/layout_attributes.js b/src/plots/mapbox/layout_attributes.js index 259d3d3cd33..33fc73e5ce7 100644 --- a/src/plots/mapbox/layout_attributes.js +++ b/src/plots/mapbox/layout_attributes.js @@ -100,7 +100,7 @@ var attrs = module.exports = overrideAll({ }, sourcetype: { valType: 'enumerated', - values: ['geojson', 'vector'], + values: ['geojson', 'vector', 'raster'], dflt: 'geojson', role: 'info', description: [ @@ -132,7 +132,7 @@ var attrs = module.exports = overrideAll({ type: { valType: 'enumerated', - values: ['circle', 'line', 'fill', 'symbol'], + values: ['circle', 'line', 'fill', 'symbol', 'raster'], dflt: 'circle', role: 'info', description: [