如何在数据库中存储和重用传单LatLngs

时间:2015-11-04 10:51:14

标签: javascript php leaflet

目前,我将此格式的多边形坐标保存到数据库中:

[52.32527, 12.99683],[52.32191, 13.76587],[52.45936, 13.79333],[52.68637, 13.39233],[52.69636, 13.03528]

后来我从数据库中获取了一个多边形数组,所以我有$polygon_array[$key]['coordinates']之类的东西,其中latlng是一个字符串。

使用PHP添加多边形来映射作品:

<script>
 <?php
  $coords = $polygon_array[$key]['coordinates'];
  echo "L.polygon([$coords]).addTo(map);";
 ?>
</script>

但是添加到没有PHP的map不起作用也不会抛出错误:

<script>
 var polygon_array = JSON.parse( '<?php echo json_encode($polygon_array); ?>' ); // transfer PHP Array to Javascript

 jQuery.each(polygon_array, function (index, value) {
  coords = polygon_array[index]['coordinates'];
  L.polygon([coords]).addTo(map);
 });
</script>

我认为问题在于Javascript将coords处理为字符串。

我的问题:如何使用数据库中的条目获取有效的latlngs参数? 难道没有一种简单的方法可以使用上面的格式吗?

1 个答案:

答案 0 :(得分:1)

您可能正确地认为您的coords变量仍然是一个字符串。

您可能只需将其转换为latLng坐标数组:

var coordsArray = JSON.parse("[" + coords + "]");
L.polygon(coordsArray).addTo(map);