有人能说出代码有什么问题吗?这个传说应该是最容易出现的部分,我无法弄清楚原因。也许藏在其他一些层?
遵循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 ? '–' + to : '+'));
}
div.innerHTML = labels.join('<br>');
return div;
};
答案 0 :(得分:0)
编辑以下回答评论:
使用开发人员工具(在Mac上为F12 /:Cmd + Alt + I)来读取潜在的控制台错误。
在您的情况下,getColor
功能未在legend.onAdd
范围内定义。
此外,您将1
添加到from
值,导致值范围为[1.2 - 2.1],而getColor
函数使用的值介于0.26到1.1之间。
使用您的仓库中的代码进行演示:http://plnkr.co/edit/lbKlXaV76t6NclHQPCtr?p=preview(getColor
已在正确的范围内复制,并已移除+1
中的getColor(from + 1)
原始答案:
您是否已将自定义控件添加到地图中?
legend.addTo(map);
作为旁注,来自<i>
的带有图例背景颜色的getColor
标记没有任何内容。因此,您可能看不到有色内容......
演示:http://jsfiddle.net/3v7hd2vx/34/(<i>
标记中包含虚拟内容)