Javascript 传单图例无数据需要拉取值

Javascript 传单图例无数据需要拉取值,javascript,leaflet,Javascript,Leaflet,我尝试替换图例javascript中的许多字符串,使第一个颜色字段的颜色与数据的no值相同。我假设我需要在第一条规则中添加一个例外,但我无法找到它。我从图图图里亚尔(tuturial)的乔洛佩斯地图传单开始,已经走到了这一步。这是我需要的最后一张真正的地图,让它完全发挥作用。基本上希望无数据值、未着色或高亮显示的国家以及图例中的第一个字段如地图所示为灰色,而不是如图所示的绿色第二个值 var legend = L.control({position: 'bottomright'});

我尝试替换图例javascript中的许多字符串,使第一个颜色字段的颜色与数据的no值相同。我假设我需要在第一条规则中添加一个例外,但我无法找到它。我从图图图里亚尔(tuturial)的乔洛佩斯地图传单开始,已经走到了这一步。这是我需要的最后一张真正的地图,让它完全发挥作用。基本上希望无数据值、未着色或高亮显示的国家以及图例中的第一个字段如地图所示为灰色,而不是如图所示的绿色第二个值

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

                legend.onAdd = function (map) {

                    var div = L.DomUtil.create('div', 'info legend'),
                        grades = [0, 0.00001, 0.7300001, 2.9900001, 6.700001],
                        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 : '&ndash;43.89303638'));
                    } //changed '1' to get right colors on the legend but first field is still second green, not sure why??

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

                legend.addTo(map);
这里是一个链接到

我添加了一个关于上次更改的注释,在此之前,它显示了两个灰色字段,然后是深绿色、浅绿色和橙色,最高值不显示红色…

legend.onAdd函数中的for循环自动从grades数组生成颜色和标签,但是,您只需在循环之前或之后添加自己的另一个标签。假设E9E9E9是未定义的颜色,它将如下所示:

labels.push('<i style="background: #E9E9E9"></i> ' + 'undefined');
如果要在图例顶部添加未定义字段,请将其放在循环之前;如果要将其添加到末尾,请将其放在循环之后。下面是一个小提琴示例,显示了使用一些随机圆圈标记时的这种方法:


这很有效,而且很容易修复,在这个例子中我学到了很多。我知道应该有一种方法来添加一个表达式来创建一个无数据字段,但我的尝试都没有成功。谢谢
labels.push('<i style="background: #E9E9E9"></i> ' + 'undefined');