1
目前我省座標對該格式的多邊形到數據庫:如何存儲和再利用傳單LatLngs在數據庫
[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增加多邊形繪製的作品:
<script>
<?php
$coords = $polygon_array[$key]['coordinates'];
echo "L.polygon([$coords]).addTo(map);";
?>
</script>
但添加到地圖,而PHP不工作既不拋出一個錯誤:
<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參數從數據庫中的條目? 是不是有一種簡單的方法來使用上面的格式?
這真的有效!但我不知道爲什麼我必須引用括號!? – MaggusK
您知道'JSON.parse'接受一個字符串作爲參數,並且這些字符串用JS和PHP中的引號表示。這裏就像'JSON.parse(「[」+「[lat1,lng1],[lat2,lng2],...」+「]」);'因爲'coords'仍然是一個字符串。你可以用'json_decode'完成與PHP完全相同的操作。看起來你的'$ coords'變量只是將你的數據庫記錄的內容保存爲純文本。這也是爲什麼'echo「L.polygon([$ coords])。addTo(map);」;'確實有效,因爲'$ coords'是文本'echo'對此很滿意。 – ghybs