Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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变量在传单上绘制多边形_Javascript_Arrays_Leaflet - Fatal编程技术网

javascript::如何使用数组中的javascript变量在传单上绘制多边形

javascript::如何使用数组中的javascript变量在传单上绘制多边形,javascript,arrays,leaflet,Javascript,Arrays,Leaflet,我正在使用ansvalue来绘制多边形。但它不会绘制任何多边形。如果我直接输入ans值,那么它就会工作 我的问题是如何在L.polygon方法中使用ans值 var a = g_cord.split(":"); //g_cord= 28.40106, 77.31231: 28.40129, 77.31231: 28.40129, 77.31269: 28.40106, 77.31269 var ans=""; for(var k=0;k<a.length;k++){ ans="[

我正在使用
ans
value来绘制多边形。但它不会绘制任何多边形。如果我直接输入
ans
值,那么它就会工作

我的问题是如何在L.polygon方法中使用
ans

var a = g_cord.split(":"); //g_cord= 28.40106, 77.31231: 28.40129, 77.31231: 28.40129, 77.31269: 28.40106, 77.31269 
var ans="";
for(var k=0;k<a.length;k++){
    ans="["+a[k]+"]," +ans;    
}               
alert(ans); //[ 28.40106, 77.31269 ],[ 28.40129, 77.31269],[ 28.40129, 77.31231],[ 28.40106, 77.31231],         
window['polygon'+id] = new L.polygon([ans],{color:"#738DEA",weight:4});
window['polygon'+id].bindPopup(""+g_name);
map.fitBounds(window['polygon'+id].getBounds());
document.getElementById("_"+id).checked = true;
group.addLayer(window['polygon'+id]);
var a=g_线拆分(“:”)//g_线=28.40106,77.31231:28.40129,77.31231:28.40129,77.31269:28.40106,77.31269
var ans=“”;

for(var k=0;k在本例中,
ans
不是数组,而是字符串

你需要

var ans= [];
for(var k=0;k<a.length;k++){
    ans.push(a[k]); // if a[k] also is a string then you may have to convert it into an array by splitting it like a[k].split(',')
}               
alert(ans);
var ans=[];

对于(var k=0;k假设g_cord包含“28.40106,77.31269:28.40129,77.31269”等内容,那么我认为您需要执行以下操作:

var a = g_cord.split(":");
var ans = [];
for(var k=0;k<a.length;k++){
    var latLong = a[k].split(",");
    ans.push([ parseFloat(latLong[0]), parseFloat(latLong[1]) ]);        
}
var a=g_线拆分(“:”);
var ans=[];

对于(var k=0;kI可以看出您没有正确创建点数组。我看不清楚这些点来自何处。代码段开头的
g_cord
的值是多少?您将ans初始化为字符串,将其更改为浮点值我添加了g_cord的值。它给出ans值=28.40106、77.31231、28.40129、77.31231、28.40129,77.31269,28.40106,77.31269…..但它是必需的,因为[28.40106,77.31269],[28.40129,77.31269],[28.40129,77.31231],[28.40106,77.31231]@komal在这种情况下,请参见Kent+1的答案,这是多边形需要的(数组数组)。另一种可能是
var ans=JSON.parse(“[”+g_cord.split(“:”).map)(函数(v){返回“[”+v”)+“]”;})+“]”;
,但你的很好,很清楚。