目前,我将这种格式的多边形坐标保存到数据库中:
[52.32527, 12.99683],[52.32191, 13.76587],[52.45936, 13.79333],[52.68637, 13.39233],[52.69636, 13.03528]
后来我从数据库中获取多边形数组,所以我有类似 $polygon_array[$key]['coordinates']
的东西,其中 latlngs 是一个字符串。
使用 PHP 添加多边形到 map 可以工作:
<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 将坐标作为字符串处理。
我的问题:如何使用数据库中的条目作为有效的 latlngs 参数? 有没有简单的方法来使用上面的格式?
最佳答案
您假设您的 coords
变量仍然是一个字符串,这可能是正确的。
您可能应该再次将其转换为 latLng 坐标数组:
var coordsArray = JSON.parse("[" + coords + "]");
L.polygon(coordsArray).addTo(map);
关于javascript - 如何在数据库中存储和重用传单 LatLngs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33519938/