2017-03-25 2 views
0

javascriptの新機能ですが、次のコードを記述して列車の位置をプロットし、列車のルートを追加します(screenshotを参照)。リーフレットの「onEachFeature」:各機能のプロパティIDに基づいて異なるgeoJSONファイルを取得する

//Add marker description before being added to layer 
function eachFeature(feature, layer) { 
    layer.bindPopup(feature.properties.id); 
    layer.on({ 
     mousedown: onClick, 
     mouseover: whenHovered, 
     mouseout: offHovered 
    }); 
} 

// Show/hide train lines on hover 
function onClick() { 
    $.getJSON("AEHL_2b.geojson", 
    function(data) { 
     staticRoute = L.geoJson(data); 
     staticRoute.addTo(map); 
    }); 
} 

function whenHovered() { 
    $.getJSON("OPS_1b.geojson", 
    function(data) { 
     hoverRoute = L.geoJson(data); 
     hoverRoute.addTo(map); 
    }); 
} 

function offHovered() { 
    map.removeLayer(hoverRoute); 
} 

基本的に、私は2つのことを行う試みること(特にリーフレットリアルタイム)のリーフレットのonEachFeature機能を使用しています:

  1. は、機能のリーフレットID
  2. でポップアップを追加します。
  3. DownlフィーチャーのチラシIDに基づいて列車ルートをプロットするgeoJsonファイルを作成します。

現時点では、私はgeoJsonをハードコーディングしましたが、私のgetJson関数で使用する各機能のリーフレットIDを取得する方法を見つけることができないようです。

異なるgeoJsonファイルを取得することは可能ですか?もしそうなら、誰かがいくつかのポインタで私を助けてくれますか?私がjavascriptを初めて使ったので何か助けてください

ありがとう!

答えて

2

今後の自己/将来のための自己更新 - onEachFeatureが使用する関数内にonClick/whenHovered/offHovered関数を置くと機能します。例えば。

 function eachFeature(feature, layer) { 
      layer.bindPopup(feature.properties.id); 
      layer.on({ 
       mousedown: onClick, 
      }); 

      //Add train route when clicked, or when hovering 
      function onClick(){ 
       $.getJSON(feature.properties.id+".geojson", 
        function(data) { 
         staticRoute = L.geoJson(data); 
         staticRoute.addTo(map); 
       }); 
      } 
     } 
関連する問題