2016-09-08 3 views
0

すべての.shpファイルのフォルダをスキャンして、チラシマップにレイヤーとして追加しようとしています。私が抱えている問題は、AJAXはフォルダをスキャンできないように見えますが、特定のファイルを検索することしかできないということです。 .shpファイルは新しいファイル名で定期的に上書きされるため、フォルダをスキャンできるようにする必要があり、指定された時間にいくつのファイルが存在するのかわかりません。フォルダにファイルがない場合は、マップが利用できないことを通知するためのポップアップが必要です(これは現在のWebサイトで動作します)。このセクションのコードは、次のとおりです。私はPHPを使用しようとしましたが、JavaScriptでそれを組み込む方法を理解できません。.shp拡張子をスキャンしてチラシマップに追加する

私はプログラマーではありませんが、私自身が私たちのウェブサイトを開発しています。 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

できません。 JavaScriptコードは、ブラウザが実行されているコンピュータのファイルシステムにアクセスすることはできません(変更のパスは見ない)。

AJAX(およびfetchなどの技術)は、別のコンピュータ(Webサーバー)から情報を取得する方法です。あなたの質問が本当に「Webサーバーで何か変わったときは、どうすればクライアントを更新できますか?おそらく答えはWebSocketssocket.io、および同様のテクニックです。

関連する問題