美好的一天,如果我的问题可能是基本的,我很抱歉,但我认为我在将字符串转换为数组时遇到了问题。
我正在尝试将多边形添加到地图(或图层)。我从 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
我不知道怎么做!
你能给我一个解决方案吗?