Javascript 在传单中创建具有不同颜色的多段线

Javascript 在传单中创建具有不同颜色的多段线,javascript,leaflet,Javascript,Leaflet,我有一个创建多段线的函数&将多段线添加到地图中 function makeRoute(e) { if(pointsSelection.length > 0) { pointsSelection.push(e.target.getLatLng()); var firstpolyline = new L.Polyline(pointsSelection, { colo

我有一个创建多段线的函数&将多段线添加到地图中

        function makeRoute(e)
    {
        if(pointsSelection.length > 0)
        {
            pointsSelection.push(e.target.getLatLng());
            var firstpolyline = new L.Polyline(pointsSelection, {
            color: 'blue',
            weight: 5,
            smoothFactor: 1
            });

            firstpolyline.addTo(map);

            pointsArrayCollection.push(pointsSelection);
            polyArrayCollection.push(firstpolyline);

            selection = [];
            pointsSelection = [];
        }
        else
        {
            alert("Please select more than one point");
        }
    }
我的问题是它每次都添加相同颜色的线条

我想每次都添加不同颜色的多边形线条


所以,如何动态更改多段线的颜色。

对于更改颜色,我使用随机颜色生成器函数

使用get_random_color()代替“blue”:

function get_random_color() 
{
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++ ) 
    {
       color += letters[Math.round(Math.random() * 15)];
    }
return color;
}
函数get\u random\u color() { 变量字母='0123456789ABCDEF'。拆分(''); var color='#'; 对于(变量i=0;i<6;i++) { 颜色+=字母[Math.round(Math.random()*15)]; } 返回颜色; }
对于更改颜色,我使用随机颜色生成器功能

使用get_random_color()代替“blue”:

function get_random_color() 
{
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++ ) 
    {
       color += letters[Math.round(Math.random() * 15)];
    }
return color;
}
函数get\u random\u color() { 变量字母='0123456789ABCDEF'。拆分(''); var color='#'; 对于(变量i=0;i<6;i++) { 颜色+=字母[Math.round(Math.random()*15)]; } 返回颜色; } 根据您的答案(正确答案)展开,您的总体解决方案是:

function makeRoute(e) {

    if(pointsSelection.length > 0) {
        pointsSelection.push(e.target.getLatLng());
        var firstpolyline = new L.Polyline(pointsSelection, {
        color: get_random_color(),
        weight: 5,
        smoothFactor: 1
        });

        firstpolyline.addTo(map);

        pointsArrayCollection.push(pointsSelection);
        polyArrayCollection.push(firstpolyline);

        selection = [];
        pointsSelection = [];

    } else {
        alert("Please select more than one point");
    }

    // Function to create a random color
    function get_random_color() {
        var letters = '0123456789ABCDEF'.split('');
        var color = '#';
        for (var i = 0; i < 6; i++ ) {
            color += letters[Math.round(Math.random() * 15)];
        } 
        return color;
    }
}
函数makeRoute(e){
如果(pointsSelection.length>0){
pointsSelection.push(例如target.getLatLng());
var firstpolyline=新的L.多段线(点选择{
颜色:获取随机颜色(),
体重:5,
平滑因子:1
});
firstpolyline.addTo(映射);
pointsArrayCollection.push(pointsSelection);
polyArrayCollection.push(第一条多段线);
选择=[];
点选择=[];
}否则{
警告(“请选择多个点”);
}
//函数创建随机颜色
函数get_random_color(){
变量字母='0123456789ABCDEF'。拆分('');
var color='#';
对于(变量i=0;i<6;i++){
颜色+=字母[Math.round(Math.random()*15)];
} 
返回颜色;
}
}
Vaibhav Shah的答案是正确的,所以请投票支持他的解决方案。

根据他的答案(这是正确的),您的总体解决方案是:

function makeRoute(e) {

    if(pointsSelection.length > 0) {
        pointsSelection.push(e.target.getLatLng());
        var firstpolyline = new L.Polyline(pointsSelection, {
        color: get_random_color(),
        weight: 5,
        smoothFactor: 1
        });

        firstpolyline.addTo(map);

        pointsArrayCollection.push(pointsSelection);
        polyArrayCollection.push(firstpolyline);

        selection = [];
        pointsSelection = [];

    } else {
        alert("Please select more than one point");
    }

    // Function to create a random color
    function get_random_color() {
        var letters = '0123456789ABCDEF'.split('');
        var color = '#';
        for (var i = 0; i < 6; i++ ) {
            color += letters[Math.round(Math.random() * 15)];
        } 
        return color;
    }
}
函数makeRoute(e){
如果(pointsSelection.length>0){
pointsSelection.push(例如target.getLatLng());
var firstpolyline=新的L.多段线(点选择{
颜色:获取随机颜色(),
体重:5,
平滑因子:1
});
firstpolyline.addTo(映射);
pointsArrayCollection.push(pointsSelection);
polyArrayCollection.push(第一条多段线);
选择=[];
点选择=[];
}否则{
警告(“请选择多个点”);
}
//函数创建随机颜色
函数get_random_color(){
变量字母='0123456789ABCDEF'。拆分('');
var color='#';
对于(变量i=0;i<6;i++){
颜色+=字母[Math.round(Math.random()*15)];
} 
返回颜色;
}
}
瓦伊巴夫·沙阿有正确的答案,所以投票支持他的解决方案