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”)+“]”;})+“]”;
,但你的很好,很清楚。