簡體   English   中英

如何動態地從 kepler.gl 中刪除所有 map 層?

[英]How to remove all map layers from kepler.gl dynamically?

我添加了一個 div 和 dropdwn,在每個選項上我都使用 reactjs 中的 addDatatoMap 上傳了 geojson 數據。 每次我選擇該選項時,都會上傳相應的圖層,但我無法刪除以前的圖層,因此任何代碼或示例都可以重置/清除 map 圖層

經過這么多研究,我找到了解決方案,所以發布它以節省其他人的時間

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 }
         )
       }
     }
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM