【问题标题】:How to remove all map layers from kepler.gl dynamically?如何动态地从 kepler.gl 中删除所有地图图层?
【发布时间】:2019-11-13 15:06:06
【问题描述】:

我添加了一个 div 和 dropdwn,在每个选项上我都使用 reactjs 中的 addDatatoMap 上传了 geojson 数据。 每次我选择该选项时,都会上传相应的图层, 但我无法删除之前的图层, 所以任何重置/清除地图图层的代码或示例

【问题讨论】:

    标签: reactjs mapbox-gl react-map-gl kepler.gl


    【解决方案1】:

    经过这么多研究,我找到了解决方案,所以发布它以节省其他人的时间

    import KeplerGlSchema from 'kepler.gl/schemas';
    import { visStateUpdaters } from 'kepler.gl/reducers';
    
    // // Clear Uploaded Data
    RemoveUploadedData() {
    // // returns uploaded Data on map
    const dataToSave = 
    KeplerGlSchema.getDatasetToSave(this.props.demo.keplerGl.map);
    console.log('dataToSave', dataToSave);
    
    // // returns uploaded layer config on map
    const configToSave = 
    KeplerGlSchema.getConfigToSave(this.props.demo.keplerGl.map);
    console.log('configToSave', configToSave);
    
    var layerConfigs = configToSave.config.visState.layers;
    
    // // Removed each uploaded layers
    if (configToSave && layerConfigs.length > 0) {
        for (var i = 0; i < layerConfigs.length; i++) {
            this.props.demo.keplerGl.map.visState = 
                  visStateUpdaters.removeDatasetUpdater(            
                  this.props.demo.keplerGl.map.visState,
                { key: dataToSave[i].data.id }
             )
           }
         }
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      相关资源
      最近更新 更多