2017-04-20 33 views
0

我想在鼠標懸停上顯示一個彈出,我想在彈出窗口上顯示名稱,這將從數組列表中選擇,我在地圖上放置多個標記在不同的latlon,現在我想要顯示一個特定latlon的彈出窗口(其中包含名稱),這是我的代碼,我想在鼠標懸停上顯示我的分區名稱,現在我得到鼠標懸停上的彈出文本,但我不知道如何才能打電話給我我在popupcontent中的數組列表,任何人都可以建議我應該做什麼?單張鼠標懸停通過數組列表彈出

var planes = [ 
     ["Jodhpur",26.28, 73.02], 
     ["Bikaner",28.0229,73.3119], 
     ["Churu",28.3254,74.4057], 
     ["Ganga Nagar",29.9038,73.8772], 
     ["Hanumangarh",29.1547,74.4995], 
     ["Jaisalmer", 26.9157,70.9083], 
     ["Jalore",25.1257,72.1416], 
     ["Jhunjhunu",28.1289,75.3995], 
     ["Nagaur",27.1854,74.0300], 
     ["Pali",25.7711, 73.3234], 
     ["Sikar",27.6094,75.1399], 
     ["Sirohi",24.7467,72.8043], 
     ["Barmer",25.7532,71.4181], 

     ]; 
     for (var i = 0; i < planes.length; i++) { 
      marker = new L.marker([planes[i][1],planes[i][2]],{icon: myIcon}).addTo(map).bindPopup('<div id="chart" class="chart"></div>'); 
    marker.on('click', onMarkerClick, this); 

    /*var currentMarker = planes[i][0]; 
    currentMarker.on('mouseover', currentMarker.openPopup.bind(currentMarker)); 
    */ 

    marker.on('mouseover', function(e) { 
    //open popup; 
    var popup = L.popup() 
    .setLatLng(e.latlng) 
    .setContent('Popup') 
    .openOn(map); 
}); 


    } 
+0

'。 setContent()'種類告訴你每個 – madalinivascu

+0

,但我想顯示我的數組列表名稱,如焦特布爾,barmer等。 – user7843669

+0

在循環內創建一個閉包,然後您將能夠訪問'mouseover'回調' (function(index){... planes [index] [0] ...})(i)' – Titus

回答

0

過濾你的陣列返回基於緯度和/或LNG

marker.on('mouseover', function(e) { 
    var name = ""; 
    $.each(planes,function(i,v){ 
     if (v.indexOf(e.latlng[0]) > 0) {//test if the lat is in the array 
      name = v[0];//get the name 
     } 
    }) 

    var popup = L.popup() 
     .setLatLng(e.latlng) 
     .setContent('District: '+name) 
     .openOn(map); 
}) 

註名:我假設e.latlng是一個數組[緯度,經度]

+0

thi s不適用於我。我通過索引平面[i] [1],平面[i] [2]放置標記,一切正常,鼠標懸停在標記上給我相同的彈出文本,但我想根據索引彈出。 – user7843669

+0

你的意思是沒有工作,什麼是不工作? – madalinivascu

+0

在此索引它返回未捕獲SyntaxError:意外的標記[ – user7843669