简体   繁体   English

使用Javascript通过按钮添加和清除geojson?

[英]Add and clear geojson with a button using Javascript?

I need a function that can add and clear geojson with a button click.我需要一个可以通过单击按钮添加和清除 geojson 的函数。 I have the following code but it doesn't work:我有以下代码,但它不起作用:

    <input type="button" value="ruta vista imss" onclick="rutavistaimss()" >

    <script>
        var rutavs = { 
                        "type": "Feature",
                        "properties": {
                                        "name": "ruta vista imss"
                                      },
                        "geometry": {
                                     "type": "LineString",
                                     "coordinates": rutavistaimsscoords
                                    }
                     };

var rutavistaimss1 = L.geoJson(rutavs);

let flag = true

function rutavistaimss() {
  if (flag) {
    // your logic
    map.addLayer( rutavistaimss1 ); 
  }
  flag = !flag
  map.removeLayer( rutavistaimss1 );
}
    </script>

I think I may need to use Jquery or something?我想我可能需要使用 Jquery 什么的?

You always remove the layer, update your Code to:您始终删除图层,将代码更新为:

let flag = true

function rutavistaimss() {
  if (flag) {
    // your logic
    map.addLayer( rutavistaimss1 ); 
  }else{  // <-- Add this else
    map.removeLayer( rutavistaimss1 );
  }

  flag = !flag
}

Or without needing a flag variable:或者不需要标志变量:

function rutavistaimss() {
if (map.hasLayer( rutavistaimss1 )) {
    map.removeLayer( rutavistaimss1 )
  }
else {
  map.addLayer( rutavistaimss1 )
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM