传单-刷新地图

Ben*_*ayo 0 javascript leaflet

我知道这个问题之前已经被问过并回答过,但我无法成功地实现这些示例。

我试图通过加载地图zoomedIn()(工作正常),然后按按钮加载地图zoomedOut()

然而zoomedOut(),我正在Map container is already initialized追赶var map = new L.Map('map');

我原以为前一行if (map != undefined) { map.remove(); }会解决这个问题。

发生了什么事 - 我怎样才能重绘地图?

<body onLoad="javascript:zoomedIn();">
<form method = "post">
<button type="button" onclick="return zoomedOut()">Zoom Out</button>
<div id="map"</div>
</form>

<script language="javascript">
  function zoomedIn() {
     var map = new L.Map('map');
    L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
        id: 'mapbox.streets'
    }).addTo(map);
         var devon = new L.LatLng(50.900958,-3.370846);
         map.setView(devon, 7);
      }
</script>

<script language="javascript">
  function zoomedOut() {
    if (map != undefined) { map.remove(); }
    var map = new L.Map('map');
    L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
        id: 'mapbox.streets'
    }).addTo(map);
         var devon = new L.LatLng(50.900958,-3.370846);
         map.setView(devon, 1);
      }
Run Code Online (Sandbox Code Playgroud)

Sym*_*tes 5

您可以使用

map.invalidateSize()
Run Code Online (Sandbox Code Playgroud)

这对我有用