我正在构建一个应用程序,用户可以在其中选择一个数据集,然后该数据集将显示在 Leaflet 地图中。为了区分标记,每个标记将被赋予一种颜色,基于一个变量。数据具有匹配的图例。
目前,我只使用一个小数据集进行测试和构建,但我希望我的应用程序也能够处理更大的数据集。
我用几个静态颜色设置了一个基本数组,这对于小数据集来说很好。但是,当我添加更大的数据集时,颜色当然会“耗尽”,如下所示。我增加了正确图例中的颜色数量,以显示我希望看到的情况。
我想要的是有效地“重复”arrayKleur如果arrayMetKetens大于颜色数组的方法。
arrayMetKetens 是一个动态数组,填充了唯一值并根据选择的数据集进行更改。
颜色数组:
arrayKleur = ["#b15928", "#6a3d9a", "#ff7f00", "#e31a1c", "#33a02c", "#1f78b4", "#a6cee3", "#b2df8a", "#fb9a99", "#fdbf6f"];
Run Code Online (Sandbox Code Playgroud)
生成图例代码:
function legenda(){
var HTMLlegenda = '<h4>Legenda</h4>';
// if arrayMetKetens is empty => default legenda text
if (arrayMetKetens.length == 0 ){
HTMLlegenda += '<p>Selecteer een tabel in de "Advanced selection" tab om de legenda weer te geven</p>'
$("#tab1").html(HTMLlegenda);
}
// if arrayMetKetens is filled => generate legenda
else{
$("#tab1").html(arrayMetKetens);
// stuk code om van bovenstaande …Run Code Online (Sandbox Code Playgroud)