2012-08-29 161 views
0

我一直在搜索Google Map Api关于此问题的所有回复,以及未能提出解决方案。Google Maps V3 api仅显示Javascript Loop中的一些标记

我有一个javascript数组“js_pickup_location_info”17个对象,包括所有的lat long info。我试图遍历并在谷歌地图上显示所有17个标记。但是,地图上只显示了17个标记中的8个。以下是代码。

感谢您的任何帮助。

function initialize() { 
    var myLatlng = new google.maps.LatLng(myLat,myLong); 
    var mapOptions = { 
     zoom: 14, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 
    var c= js_pickup_location_info.length; 
    console.log(c); 
    for (var i=0; i<c; i++){ 

     pickup_id= js_pickup_location_info[i]['pickup_id']; 
     pickup_latlng= new google.maps.LatLng(js_pickup_location_info[i]['latitude'],js_pickup_location_info[i]['longitude']); 
     contentString= '<div id="content">'+ 
       '<div id="siteNotice">'+ 
       '</div>'+ 
       '<h2 id="firstHeading" class="firstHeading">'+js_pickup_location_info[i]['address']+'</h2>'+ 
       '<div id="bodyContent">'+ 
       '<p>'+js_pickup_location_info[i]['pickup_day']+'</p>'+ 
       '<p>HOLDER Insert Ajax Link</p>'+ 
       '</div>'+ 
       '</div>'; 

     var infowindow = new google.maps.InfoWindow({ 
       content: contentString 
       // could add size: new google.maps.Size(50,50) 
      }); 
     var marker = new google.maps.Marker({ 
       position: pickup_latlng, 
       map: map, 
       title: pickup_id 
      }); 

     google.maps.event.addListener(marker, 'click', function() { 
       infowindow.open(map,marker); 
      }); 
      } 
     } 


function loadScript() { 
    var script = document.createElement("script"); 
    script.type = "text/javascript"; 
    script.src = "http://maps.googleapis.com/maps/api/js?key=AIzaSyCH-RktY6ZGD8AlwxEzzF28nzCrRMjEfjE&sensor=false&callback=initialize"; 
    document.body.appendChild(script); 
} 

window.onload = loadScript; 
+1

你确信坐标是不是一些标记一样吗?你可能已经创建了17个标记,但是如果其中一些具有相同的经纬度,那么它们将堆叠在顶部 –

+0

上,所有的坐标都是唯一的。 – user1634246

回答

0

变量范围的问题,修改以下部分给出波纹管,它应该工作

google.maps.event.addListener(marker, 'click', function() { 
    infowindow.setContent(this.html); 
    infowindow.open(map, this); 
}); 
+0

感谢您的回应,我尝试了更改,但我仍然遇到同样的问题。 – user1634246

+0

与之前相同的结果。 – user1634246

+1

你有没有尝试删除你的网络临时文件和ctrl - f5的工作页面?对不起,要问,因为这已经杀了我很多次在我的网络应用程序。 –