2014-12-13 108 views
0

我尝试添加多个标记进行坐标映射。但我看不到任何结果。这里是JS: 在我的网页我收到这个JS代码:谷歌地图多个标记

function initialize() { 
     var markers = [["\u041a\u0438\u0435\u0432",50.401515322782,30.5859375],["\u0425\u0430\u0440\u044c\u043a\u043e\u0432",49.922935454496,36.2548828125],["\u041a\u0438\u0435\u0432",50.457504020421,30.498046875],["\u041a\u0438\u0435\u0432",50.457504020421,30.498046875],["\u0414\u043d\u0435\u043f\u0440\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d",50.457504020421,30.6298828125]]; 
     var myLatlng = new google.maps.LatLng(37.4419, -122.1419); 
     var myOptions = { 
      zoom: 13, 
      center: myLatlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("googleMap"), myOptions); 
     for (var i = 0; i < markers.length; i++) { 
      new google.maps.Marker({ 
       "position": new google.maps.LatLng(markers[i][1], markers[i][2]), 
       "map": map 
      }); 
     } 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
+0

你能否更新您的问题,包括实际生成的JavaScript,而不是Twig代码? – duncan 2014-12-13 20:39:31

+0

@duncan,即JS,我只是在Twig模板中获取数据表单控制器。 – nowiko 2014-12-13 20:57:08

+0

那么这就是你的问题,'var locs ='{{locs | json_encode | raw}}';'是一个对javascript没有意义的字符串。如果您在网页上查看源代码,是实际说的,还是它有'locs ='[[50.401515322782,30.5859375],[47.872143968887,34.892578125],[50.457504020421,30.498046875],[50.457504020421,30.498046875],[50.457504020421 ,30.6298828125]]';'?? – duncan 2014-12-13 21:01:12

回答

1

你的JavaScript变量locs是一个字符串,而不是一个数组,当你将它像这样:

var locs = '{{ locs|json_encode|raw }}'; 

但你尝试把它当作是你的循环的数组。我认为你应该能够做到这一点:

var locs = {{ locs|json_encode|raw }}; 
+0

下面现在的代码说locs可能没有被定义。并在我的地图中仍然没有标记。我做错了什么? – nowiko 2014-12-13 21:18:37

+0

'{{}}'是服务器端的Twig代码。更新你的问题,包括在页面中的JavaScript。 – duncan 2014-12-13 21:21:34

+0

我编辑帖子和过去的js从页面/ – nowiko 2014-12-13 21:37:47