javascript - 如何在数据库中存储和重用传单 LatLngs

标签 javascript php leaflet

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

[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/

相关文章:

javascript - php获取未选中复选框的值

javascript - 是否可以使用 Javascript 监视目录的修改

javascript - 如何根据对象的属性加载动态组件?

php - Windows 上的 ApiGen。无法运行 apigen 命令

php - 简单的 php 条件语句后很长的延迟

r - 使用 gcIntermediate 在 R 传单/Shiny 中映射跨越日期变更线的最短飞行路径

javascript - 缩放更改时 Leaflet 标记工具提示文本中的动态更改字体大小

leaflet - 如何为传单下载 map 图 block ?

javascript - 联合接口(interface)类型上不存在属性

javascript - 在播放另一首轨道时降低bg音乐,然后将其返回到上一音量