目前,我将此格式的多边形坐标保存到数据库中:
[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参数? 难道没有一种简单的方法可以使用上面的格式吗?
答案 0 :(得分:1)
您可能正确地认为您的coords
变量仍然是一个字符串。
您可能只需将其转换为latLng坐标数组:
var coordsArray = JSON.parse("[" + coords + "]");
L.polygon(coordsArray).addTo(map);