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
对它很满意。