1

美好的一天,如果我的问题可能是基本的,我很抱歉,但我认为我在将字符串转换为数组时遇到了问题。

我正在尝试将多边形添加到地图(或图层)。我从 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

我不知道怎么做!

你能给我一个解决方案吗?

4

0 回答 0