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

javascript::how to use javascript variable in array to draw polygon on leaflet

本文关键字:javascript 绘制 多边形 何使用 数组 变量      更新时间:2023-09-26

我正在使用ans值绘制多边形。但是它不画任何多边形。如果我直接把CCD_ 2的值放进去。

我的问题是如何在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]);

假设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]) ]);        
}

这将在逗号上拆分每个lat-long对,并将每个对解析为float。这似乎是Leafly的Polygon构造函数所需的数据结构。

在这种情况下,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);