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)];
}
返回颜色;
}
}
瓦伊巴夫·沙阿有正确的答案,所以投票支持他的解决方案