2014-03-19 68 views
1

所以我嘗試使用leaflet.js創建一個基於地圖的可視化。我想要做的是對地圖的不同縮放級別使用不同的GeoJSON文件。例如,當它縮小時,我只想顯示狀態邊界,放大時也顯示縣邊界。在我加載的.js文件中,我將GeoJSON作爲JavaScript變量。當我只想加載一個.js文件時,它工作正常,但是當我動態地想要根據縮放級別更改.js文件時,我無法弄清楚如何動態製作區域GeoJSON數據可用的其他.js文件。根據地圖縮放級別在leaflet.js中使用不同的JavaScript文件

我所指的單張樣本是this之一。我看了很多SO處理動態.js文件加載的問題,但無濟於事。

回答

1

我用map.on()屬性來實現這一點。代碼如下:

map.on('zoomend', function(e) { 
    if (map.getZoom() > 5) { 
    $.getScript('js/reassign_districts.js', function(data, textStatus, jqxhr) { 
     console.log(textStatus); // Success 
     console.log("Districts loaded."); 
     if (jqxhr.status == 200) { 
     map.removeLayer(geojson); 
     loadGeoJson(); 
     } 
    }); 
    } else if (map.getZoom() <= 5) { 
    $.getScript('js/reassign_states.js', function(data, textStatus, jqxhr) { 
     console.log(textStatus); // Success 
     console.log("States loaded."); 
     if (jqxhr.status == 200) { 
     map.removeLayer(geojson); 
     loadGeoJson(); 
     } 
    }); 
    } 
}); 

一些變量和函數,儘管這裏沒有定義,但就他們的名字而言是有意義的。

相關問題