美好的一天, 我很抱歉,如果我的问题可能是基本的,但我认为将字符串转换为数组确实存在问题。
我正在尝试将多边形添加到地图(或图层)。我从MYSQL数据库中提取了一些多边形坐标,将其显示在地图中。
首先是我的代码:
function getGeofences(devise_id){
$.ajax({
type: "POST",
url: "maps/sql/getGeofences.php",
data: {devise_id:devise_id},
success: result,
error: error,
dataType: "json"
});
function error(data)
{
console.log("Error getGeofences");
console.log(data);
}
function result(data){
console.log("Geofences from DB");
for (var i = data.features.length - 1; i >= 0; i--) {
console.log(data.features[i].geometry.coordinates);
//var polygon = L.polygon(data.features[i].geometry.coordinates, {color: 'red'});
var polygon = L.polygon([[51.436888577205,-1.373291015625],[51.169011079452,-1.494140625],[51.158676864424,-0.8624267578125],[51.505323411493,-0.889892578125],[51.436888577205,-1.373291015625]] , {color: 'red'});
polygon.addTo(map);
}
}
}
此:
console.log(data.features[i].geometry.coordinates);
显示/打印:
“[[51.436888577205,-1.373291015625],[51.169011079452,-1.494140625],[51.158676864424,-0.8624267578125],[51.505323411493,-0.889892578125],[51.436888577205,-1.373291015625]]”
我不明白为什么这个
var polygon = L.polygon([[51.436888577205,-1.373291015625],[51.169011079452,-1.494140625],[51.158676864424,-0.8624267578125],[51.505323411493,-0.889892578125],[51.436888577205,-1.373291015625]] , {color: 'red'});
作品!
但是这个:
var polygon = L.polygon(data.features[i].geometry.coordinates, {color: 'red'});
不起作用!
请记住,这:
data.features[i].geometry.coordinates
打印:
[[51.436888577205,-1.373291015625],[51.169011079452,-1.494140625],[51.158676864424,-0.8624267578125],[51.505323411493,-0.889892578125],[51.436888577205,-1.373291015625]]
我认为,这是因为
的内容data.features[i].geometry.coordinates
事实上,是一个包含多个'[[]]'
的字符串现在,我不知道如何将上面的字符串转换为rwally数组。所以,我不知道我的书中究竟是什么,但我需要“解析”
的内容data.features[i].geometry.coordinates
我不知道怎么做!
你能建议我一个解决方案吗?