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

时间:2016-09-08 18:25:35

标签: javascript php jquery ajax leaflet

我正在尝试扫描所有.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}},];

1 个答案:

答案 0 :(得分:0)

无法完成。 JavaScript代码无法访问运行浏览器的计算机的文件系统(更不用说查看更改的路径)。

AJAX(以及fetch和类似技术)只是从另一台计算机(Web服务器)获取信息的方法。如果您的问题确实是#34;当Web服务器发生变化时,我该如何更新客户端?&#34;然后答案可能是WebSocketssocket.io和类似的技巧。