2016-07-12 96 views
0

有人可以告訴代碼有什麼問題嗎?這個傳說,應該是最容易出現的部分,我不知道爲什麼。也許隱藏在其他層?單張圖例不顯示

繼的getColor和傳說代碼

var legend = L.control({ 
    position: 'bottomleft' 
}); 

legend.onAdd = function(map) { 
    var div = L.DomUtil.create('div', 'info legend'), 
    grades = [0.2, 0.26, 0.32, 0.38, 0.44, 0.5, 0.56, 0.62, 0.68, 0.74, 0.8, 0.86, 0.92, 0.98, 1.04, 1.1], 
    labels = [], 
    from, to; 

    for (var i = 0; i < grades.length; i++) { 
    from = grades[i]; 
    to = grades[i + 1]; 

    labels.push(
     '<i style="background:' + getColor(from + 1) + '"></i> ' + 
     from + (to ? '&ndash;' + to : '+')); 
    } 

    div.innerHTML = labels.join('<br>'); 
    return div; 
}; 

回答

0

編輯以下的答案評論:

使用的開發工具(F12/Mac上:Cmd的+ Alt + I)讀潛在控制檯錯誤。

對您而言,getColor函數未在您的legend.onAdd的範圍內定義。

此外,您將1添加到您的from值,結果值範圍在[1.2 - 2.1],而您的getColor函數使用的值從0.26到1.1。

使用代碼從您的回購工作演示:http://plnkr.co/edit/lbKlXaV76t6NclHQPCtr?p=previewgetColor在正確的範圍內複製,並取消了+1getColor(from + 1)


原來的答覆:

你添加自定義控制地圖?

legend.addTo(map); 

作爲一個側面說明,你<i>標籤與傳奇-ED底色從getColor沒有任何內容。因此,你可能會看到沒有彩色內容...

演示:http://jsfiddle.net/3v7hd2vx/34/(在你的<i>標籤虛擬內容)

+0

對不起didnt貼吧。 legend.addTo(地圖);已經是getcolor的代碼的一部分。我複製並粘貼了你的代碼,而現在它不顯示任何東西。這是GeoJSON的所有部分我不知道這是否有區別 – Pre60

+0

順便說一下,您是否使用一些背景顏色來設置您的'div.info.legend'圖例控件容器,以便在地圖上輕鬆查看它?注意我必須在上述演示中應用白色背景色。 – ghybs

+1

https://github.com/Pre60/myTest/commit/f2a522622180c5907d2f2f04fd5dd889e3bc8933 – Pre60