扫描文件夹的.shp扩展名,并添加到传单地图


Scan folder for .shp extension and add to leaflet map

我正试图扫描所有.shp文件的文件夹,并将它们添加到我的传单地图作为一个图层。我遇到的问题是,AJAX似乎不能扫描文件夹,而只能搜索特定的文件。我需要它能够扫描文件夹,因为.shp文件将被新文件名定期覆盖,我不知道在给定的时间会有多少文件。如果在文件夹中没有文件,我需要一个弹出通知,地图是不可用的(这在当前的网站工作)。本节的代码如下所示。我尝试过使用PHP,但我不知道如何将其与JavaScript结合起来。

我不是一个程序员,但我在自己开发我们的网站时绊倒了。你可以在这里查看:http://hsvfms.azurewebsites.net/map.html

如果我没有提供足够的信息或断章取义,请让我知道。另外,看看我们的网站,让我知道你的想法。

var noMaps = L.control ();
var profile01 = new L.LayerGroup();
var profile02 = new L.LayerGroup();
$.ajax({
    type:"GET",
    url:"Aldridge_Unet/",
    success: function(data) {
        $(data).find("a:contains(.shp)").each(function(){
            var mapList=[];
            var profile0 = new L.Shapefile(mapList[0],{color:'DarkCyan',fillOpacity:'0.5', opacity:'5', weight:'1'}).addTo(profile01);
            var profile1 = new L.Shapefile(mapList[1],{color:'DarkCyan',fillOpacity:'0.5', opacity:'5', weight:'1'}).addTo(profile02);
        })
    },
    error: function (xhr, status, error) {
        if(xhr.status==404){
            noMaps = L.control ({position:'bottomleft'});
            noMaps.onAdd = function(map) { var div = L.DomUtil.create('div', 'info legend');
                div.innerHTML += '<img src="Images/map_not_available.png" alt="legend" style="width:275px;height:75px;background-color:white">';
            return div;};
        }
    }
});
var overlays = [{groupName:"Inundation Boundaries", expanded:false, layers:{"Max Value":profile01}},];

不能。JavaScript代码不能访问运行浏览器的计算机的文件系统(更不用说监视路径的变化了)。

AJAX(以及fetch和类似的技术)只是从另一台计算机(web服务器)获取信息的方法。如果你的问题真的是"当web服务器发生变化时,我如何更新客户端?"那么答案可能是WebSockets, socket。