2012-10-17 133 views
0

所以这里是我的代码。问题是地图显示,但没有标记放置在地图上。 latlongARR是阵列看起来像这样谷歌地图和多个标记

[{ “名称”: “麦科德字段 DGC”, “LAT”: “47.128257”, “长”: “ - 122.488847”},{ “名” :“Ambient DGC”,“lat”:“47.184732”,“long”:“ - 122.509232”},{“name”:“Riverside Disc Golf Park”,“lat”:“47.185683”,“long” “-122.212600”},{“name”:“East Tacoma DGC”,“lat”:“47.227344”,“long”:“ - 122.398491”},{“name”:“White River” :“47.278501”,“long”:“ - 122.197390”}]

似乎一切都应该工作?任何明显的错误?

   var mapOptions = { 
        zoom:10, 
        center: currentLocation, 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
        }; 
       var map = new google.maps.Map(document.getElementById('dgmap'), mapOptions); 
       var infowindow = null; 

       var infowindow = new google.maps.InfoWindow({content: 'loading...'}); 

       var marker, i; 

       for(i=0; i < latlongARR.length; i++){ 
        var markers; 
        marker = new google.maps.Marker({ 
         position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]), 
         map:map 
         }); 
         console.log(latlongARR[i][0]); 
        google.maps.event.addListener(marker, 'click', (function(marker, i){ 
         return function(){ 
          infowindow.setContent(latlongARR[i][0]); 
          infowindow.open(map, marker); 
         } 
         })(marker,i)); 
        }; 

       } 

回答

2
position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]), 

latlongARR[i]是一个对象,你需要使用属性名而不是数字索引来获取值,上面的代码应该是:

position: new google.maps.LatLng(latlongARR[i].lat, latlongARR[i].long), 

​​

同一个问题如下:

infowindow.setContent(latlongARR[i][0]); 

这应该是infowindow.setContent(latlongARR[i].name);

+0

MarkerOptions中的{map:map}等同于marker.setMap(map); – geocodezip

+0

@geocodezip是的,你说得对,问题是'latlongARR [i] [0]'等等。 – xdazz

1

你应该使用调试器。第一件事情是这样的:

    marker = new google.maps.Marker({ 
        position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]), 
        map:map 
        }); 

latlongARR[i][1]latlongARR[i][2]是不确定的,他们应该是latlongARR[i].latlatlongARR[i].long

+0

谢谢。我看到未定义,但没有意识到需要使用.lat .long访问。完全合作。我很新,学习这些东西很棒。谢谢您的帮助 –