1

ポリラインを作成し、そのポリラインをマップに追加する関数が1つあります

        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");
        }
    }

私の問題は、毎回同じ色の行を追加することです。

毎回違う色のポリラインを追加したい。

ポリラインの色を動的に変更するにはどうすればよいですか。

4

2 に答える 2

7

色を変更するには、ランダムカラージェネレーター関数を使用しています。

「青」の代わりに get_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;
}
于 2013-03-12T12:23:05.887 に答える
0

viabhav 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;
    }
}

Vaibhav Shah は正しい答えを持っているので、彼の答えに投票してください。

于 2013-03-12T16:01:58.633 に答える