Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在传单中创建具有不同圆圈大小的图例_Javascript_Leaflet_Legend_Geojson - Fatal编程技术网

Javascript 在传单中创建具有不同圆圈大小的图例

Javascript 在传单中创建具有不同圆圈大小的图例,javascript,leaflet,legend,geojson,Javascript,Leaflet,Legend,Geojson,下午好 我正在与传单传奇战斗,这取决于圆圈半径。因为我将有相同颜色的值,但大小不同。我想创造适合他们的传奇 我试过这个例子: 在我的地图中实现 为此,我使用了以下代码: function getRadius(r) { //r = Math.sqrt(y / Math.PI) //return r; return r > 100 ? 15 : r > 50 ? 10 : r > 20 ? 6 : r > 10 ? 3 :

下午好

我正在与传单传奇战斗,这取决于圆圈半径。因为我将有相同颜色的值,但大小不同。我想创造适合他们的传奇

我试过这个例子:

在我的地图中实现

为此,我使用了以下代码:

   function getRadius(r) {
//r = Math.sqrt(y / Math.PI)
//return r;
return r > 100 ? 15 :
       r > 50 ? 10 :
       r > 20 ? 6 :
       r > 10 ? 3 :
       0;
 }


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

var div = L.DomUtil.create('div', 'info legend');
grades = [0, 10, 20, 50, 100],
labels = ['<strong>Amount of units</strong>'],
categories = ['> 100','50-100','1-50','N/A'];

for (var i = 0; i < grades.length; i++) {
    labels.push(
        '<i class="circlepadding" style="width: '+Math.max(0,(19-1.8*getRadius))+'px;"></i> <i 
 style="background: #8080A0; width: '+getRadius*2+'px; height: '+getRadius*2+'px; border-radius: 
 50%; margin-top: '+Math.max(0,(9-getRadius))+'px;"></i> ');
}
div.innerHTML = labels.join('<br>');
return div;
 };
  legend.addTo(map);
函数getRadius(r){
//r=Math.sqrt(y/Math.PI)
//返回r;
返回r>100?15:
r>50?10:
r>20?6:
r>10?3:
0;
}
var legend=L.control({position:'bottomright'});
legend.onAdd=函数(映射){
var div=L.DomUtil.create('div','info legend');
等级=[0,10,20,50,100],
标签=['单位数量'],
类别=['>100','50-100','1-50','N/A'];
对于(变量i=0;i”);
返回div;
};
图例。添加到(地图);
但最后我得到了一个很差的结果,如下图所示:


有人能帮我解决这个问题吗?

将for循环更改为:

for (var i = 0; i < grades.length; i++) {
            var grade = grades[i]*5;
      labels.push(
          '<i class="circlepadding" style="width: 5px;"></i> <i  style="background: #8080A0; width: '+getRadius(grade)*2+'px; height: '+getRadius(grade)*2+'px; border-radius:  50%; margin-top: '+Math.max(0,(9-getRadius(grade)))+'px;"></i> '+categories[i]);
  }

是的,很好。然而,有没有办法克服这个“XX”变量?要将类别数量从5个减少到4个?看起来我必须删除其中一个等级,然后就可以了。
categories = ['> 100','50-100','1-50','N/A','XX'];