如何清除react中的传单地图,以便可以映射新数据?

10号

我正在尝试在获取新数据以映射时清除反应中的传单映射,但我不确定如何处理。我看到了这篇文章,但不确定如何应用。

现在,我有一个函数可以提取已加载的2个geojson中的1个。

App.js

//SWAP FILES AS EXAMPLE
  fetchData = () => {
    //MAP SHOULD CLEAR EVERYTIME NEW DATA IS FETCHED
    if(this.state.loaded === 1) {
      fetch(
        "https://raw.githack.com/datafaust/raw/main/cruise-prototype/hh_2020112300_2020120623_Saturday_02.geojson"
      )
        .then((response) => response.json())
        .then((geojson) => {
          this.setState({ geojson, loaded: 2 });
        });

    } else {
      fetch(
        "https://raw.githack.com/datafaust/raw/main/cruise-prototype/hh_2020112300_2020120623_Saturday_03.geojson"
      )
        .then((response) => response.json())
        .then((geojson) => {
          this.setState({ geojson, loaded: 1 });
        });
    } 
  };

这仅仅是降低功能的测试。现在,如果我fetch data button在初始加载后单击,则传单将新的geojson映射到顶部。如何清除映射信息,以便新映射新的geojson?

我在这里有一个代码沙盒:

https://codesandbox.io/s/leaflet-test-forked-8hm3i?file=/src/Leaf.js:550-573

kboul

Choro组件外部创建变量

let savedGeojson = {};

在useEffect内部使其与L.choropleth实例相等如果存在,则从地图中删除geojson,否则通过替换上一个保存的来保存新的。

useEffect(() => {
    if (Object.keys(props.geojson).length > 0) {
      if (savedGeojson) map.removeLayer(savedGeojson);
      savedGeojson = L.choropleth(props.geojson, {
        valueProperty: "DIFF", // which property in the features to use
        scale: ["white", "red"], // chroma.js scale - include as many as you like
        steps: 5, // number of breaks or steps in range
        mode: "q", // q for quantile, e for equidistant, k for k-means
        //style,
        onEachFeature: function (feature, layer) {
          layer.bindPopup(
            "Total " + feature.properties.DIFF + "<br>" //+
            // feature.properties.incidents.toLocaleString() +
            // " incidents"
          );
        }
      }).addTo(map);
    }
  }, [props.geojson]);

  return null;
}

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在javascript foreach“循环”中存储数据,以便可以在“循环”之外访问数据

来自分类Dev

如何从then()方法的api请求中获取数据,以便可以在函数外部处理数据?

来自分类Dev

如何修复我的代码,以便可以使用componentDidMount中的数据(反应)

来自分类Dev

如何在数据表中添加按钮,以便可以编辑特定的列

来自分类Dev

如何索引数据框以便可以扩充?

来自分类Dev

如何将mapply转换为pmap或类似的数据,以便可以在R中对数据进行分组

来自分类Dev

如何将PHP数组保存到MySQL数据库,以便可以搜索数据库中的数组?

来自分类Dev

如何将对象映射到数组,以便可以将其转换为csv?

来自分类Dev

如何实现函子,以便可以将映射应用于两个函数?

来自分类Dev

如何安排此代码,以便可以从数据库中为每个表行获取不同的条目

来自分类Dev

如何从交替的布尔行创建新的Pandas DataFrame,以便可以绘制新的DataFrame?

来自分类Dev

如何在Visual Studio Code中重新映射默认的CTRL + f(查找),以便可以像在unix / linux中那样使用CTRL + f?

来自分类Dev

如何修复此功能,以便可以对数据框运行它?

来自分类Dev

如何对大量数据进行子集或汇总,以便可以制作单独的饼图

来自分类Dev

如何重载<<操作符,以便可以将对象的数据写入文件?

来自分类Dev

如何配置我的React-Node App,以便可以将其部署到Heroku?

来自分类Dev

在Xcode中,如何创建一个新的工作区并向其中添加一个项目,以便可以看到该项目及其文件?

来自分类Dev

如何通过cURL中的post发送数组,以便可以按原样直接存储在Database中

来自分类Dev

如何在Linux中刻录FullHD电影,以便可以在蓝光播放器中播放?

来自分类Dev

如何将数据从网络类提取到同一类的变量中,以便可以从ios中的其他类访问

来自分类Dev

如何设置传单地图的缩放比例以显示React传单中的所有标记?

来自分类Dev

如何将Part转换为Blob,以便可以将其存储在MySQL中?

来自分类常见问题

如何创建静态类的实例,以便可以从单独的类中调用它?

来自分类Dev

如何记录消息以便可以在VS2013中看到它?

来自分类Dev

如何将PDF加载到Blob中以便可以上传?

来自分类Dev

如何在EC2上的开发中运行Django,以便可以通过Internet访问?

来自分类Dev

如何反序列化JSON字符串,以便可以在C#中循环?

来自分类Dev

如何在Ruby数组中对整数进行分组,以便可以压缩数组?

来自分类Dev

如何最好地在SQL Server中存储密码,以便可以检索密码

Related 相关文章

  1. 1

    如何在javascript foreach“循环”中存储数据,以便可以在“循环”之外访问数据

  2. 2

    如何从then()方法的api请求中获取数据,以便可以在函数外部处理数据?

  3. 3

    如何修复我的代码,以便可以使用componentDidMount中的数据(反应)

  4. 4

    如何在数据表中添加按钮,以便可以编辑特定的列

  5. 5

    如何索引数据框以便可以扩充?

  6. 6

    如何将mapply转换为pmap或类似的数据,以便可以在R中对数据进行分组

  7. 7

    如何将PHP数组保存到MySQL数据库,以便可以搜索数据库中的数组?

  8. 8

    如何将对象映射到数组,以便可以将其转换为csv?

  9. 9

    如何实现函子,以便可以将映射应用于两个函数?

  10. 10

    如何安排此代码,以便可以从数据库中为每个表行获取不同的条目

  11. 11

    如何从交替的布尔行创建新的Pandas DataFrame,以便可以绘制新的DataFrame?

  12. 12

    如何在Visual Studio Code中重新映射默认的CTRL + f(查找),以便可以像在unix / linux中那样使用CTRL + f?

  13. 13

    如何修复此功能,以便可以对数据框运行它?

  14. 14

    如何对大量数据进行子集或汇总,以便可以制作单独的饼图

  15. 15

    如何重载<<操作符,以便可以将对象的数据写入文件?

  16. 16

    如何配置我的React-Node App,以便可以将其部署到Heroku?

  17. 17

    在Xcode中,如何创建一个新的工作区并向其中添加一个项目,以便可以看到该项目及其文件?

  18. 18

    如何通过cURL中的post发送数组,以便可以按原样直接存储在Database中

  19. 19

    如何在Linux中刻录FullHD电影,以便可以在蓝光播放器中播放?

  20. 20

    如何将数据从网络类提取到同一类的变量中,以便可以从ios中的其他类访问

  21. 21

    如何设置传单地图的缩放比例以显示React传单中的所有标记?

  22. 22

    如何将Part转换为Blob,以便可以将其存储在MySQL中?

  23. 23

    如何创建静态类的实例,以便可以从单独的类中调用它?

  24. 24

    如何记录消息以便可以在VS2013中看到它?

  25. 25

    如何将PDF加载到Blob中以便可以上传?

  26. 26

    如何在EC2上的开发中运行Django,以便可以通过Internet访问?

  27. 27

    如何反序列化JSON字符串,以便可以在C#中循环?

  28. 28

    如何在Ruby数组中对整数进行分组,以便可以压缩数组?

  29. 29

    如何最好地在SQL Server中存储密码,以便可以检索密码

热门标签

归档