2016-07-12 58 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