我正在尝试扫描所有.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}},];
答案 0 :(得分:0)
无法完成。 JavaScript代码无法访问运行浏览器的计算机的文件系统(更不用说查看更改的路径)。
AJAX(以及fetch
和类似技术)只是从另一台计算机(Web服务器)获取信息的方法。如果您的问题确实是#34;当Web服务器发生变化时,我该如何更新客户端?&#34;然后答案可能是WebSockets,socket.io和类似的技巧。