如何更新Kepler.gl MapBox组件样式

时间:2019-05-08 17:25:10

标签: kepler.gl

我试图弄清楚如何自定义kepler.gl的mapbox样式。我想让mapbox组件填充屏幕的宽度和高度。

我已经尝试使用调度程序更新它,但没有成功:

this.props.dispatch(loadCustomMapStyle({inputStyle: {url: 'mapbox://styles/mapbox/navigation-guidance-day-v4', id: 'some-id', style: {width: '100%', height: '100%'}}}));

this.props.dispatch(addCustomMapStyle());

我也尝试过使用样式组件ThemeProvider:

<ThemeProvider theme={{width: '100%', height:'100%'}}>
            <KeplerGl
                id="foo"
                mapboxApiAccessToken={'API_KEY'}
                store={store}
              />
</ThemeProvider>

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

KeplerGl组件接受widthheight道具(文档here)。要使用div的尺寸更改它们,可以使用AutoSizer。例如,为使KeplerGl组件充满屏幕,您可以将其包装在全屏的div中,如下所示:

import AutoSizer from 'react-virtualized/dist/commonjs/AutoSizer';

...

<div style={{position: "absolute", width: "100%", height: "100%"}}> 
    <AutoSizer>
        {({height, width}) => (
            <KeplerGl
                mapboxApiAccessToken={MAPBOX_TOKEN}
                id="map"
                width={width}
                height={height}
            />  
        )}  
    </AutoSizer>
</div>