当我使用硬编码的javascript数组作为地图标记的输入时,标记显示得很好,所以我知道我用来显示标记的代码是好的。
我的问题是当我尝试使用json_encode转换php多数组时,地图上没有任何内容显示。
硬编码标记是:
var locations = [
['Sausalito', 37.8590937, -122.4852507,'url'],
['Sacramento', 38.5815719, -121.4943996,'url'],
['Soledad', 36.424687, -121.3263187,'url'],
['Shingletown', 40.4923784, -121.8891586,'url']
];
他们工作。
php数组是:
$locations = array(array(Sausalito, 37.8590937, -122.4852507,'url'),array(Sacramento, 38.5815719, -121.4943996,'url'));
生成数组,
Array
(
[0] => Array
(
[0] => Sausalito
[1] => 37.8590937
[2] => -122.4852507
[3] => url
)
[1] => Array
(
[0] => Sacramento
[1] => 38.5815719
[2] => -121.4943996
[3] => url
)
)
所以没问题。
现在当我json_encode上面的数组
var locations = '<?php echo json_encode($locations); ?>';
javascript地图代码无法读取它。如果我打印变量
document.write(locations);
它显示为
[["Sausalito",37.8590937,-122.4852507,"url"],["Sacramento",38.5815719,-121.4943996,"url"]]
它看起来像上面的硬编码,但它不会被与硬编码数据一起使用的地图代码读取。
请有人帮助我,非常感谢。
答案 0 :(得分:1)
删除单引号,否则locations
将是一个字符串而不是数组:
var locations = '<?php echo json_encode($locations); ?>';
//--------------^--------------------------------------^