Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在数据库中存储和重用传单板条_Javascript_Php_Leaflet - Fatal编程技术网

Javascript 如何在数据库中存储和重用传单板条

Javascript 如何在数据库中存储和重用传单板条,javascript,php,leaflet,Javascript,Php,Leaflet,目前,我将多边形的坐标以这种格式保存到数据库中: [52.32527, 12.99683],[52.32191, 13.76587],[52.45936, 13.79333],[52.68637, 13.39233],[52.69636, 13.03528] 后来我从数据库中获取了一个多边形数组,所以我有了类似于$polygon\u array[$key]['coordinates']的东西,其中latlng是一个字符串 使用PHP将多边形添加到地图工作: <script> &l

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

[52.32527, 12.99683],[52.32191, 13.76587],[52.45936, 13.79333],[52.68637, 13.39233],[52.69636, 13.03528]
后来我从数据库中获取了一个多边形数组,所以我有了类似于
$polygon\u 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>

var polygon_array=JSON.parse(“”);//将PHP数组传输到Javascript
每个(多边形数组,函数(索引,值){
坐标=多边形数组[索引][“坐标”];
L.多边形([coords])。添加到(地图);
});
我认为问题在于Javascript将坐标作为字符串处理

我的问题是:如何使用数据库中的条目作为有效的latlngs参数?
是否有一种简单的方法可以使用上述格式?

您可能正确地假设了
coords
变量仍然是字符串

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

var-coordsArray=JSON.parse(“[”+coords+“]);
多边形(coordsArray).addTo(map);

这真的很有效!但我不知道为什么我要引用括号!?您知道,
JSON.parse
以字符串作为参数,字符串在JS和PHP中用引号表示。在这里,它就像执行
JSON.parse(“[“+”[lat1,lng1],[lat2,lng2],…“+”])coords
仍然是一个字符串。在PHP中使用
json\u decode
也可以做到同样的效果。您的
$coords
变量似乎只是以纯文本的形式保存数据库记录的内容。这也是为什么
echo“L.polygon([$coords]).addTo(map);”确实有效,因为
$coords
是文本
echo
对它很满意。