2013-11-27 79 views
0

我有我的地图和代码循环通过json数组添加标记到地图。谷歌地图标记不出现

地图加载和我得到控制台输出,指出每个公园已添加到地图,但没有标记出现在它上面。

任何想法?

function initialize() { 

    var mapOptions = { 
     center: new google.maps.LatLng(-34.397, 150.644), 
     zoom: 2 
    }; 

    var map = new google.maps.Map($('#maptest')[0], mapOptions); 

    $.getJSON("/parks.json", function(parks) { 
     $.each(parks, function(key, park) { 
     if (park.lat && park.lng) { 
      var latlng = park.lat + ',' + park.lng; 
      var location = new google.maps.LatLng(latlng); 
      var marker = new google.maps.Marker({ 
      position: location, 
      map: map 
      }); 
      console.log('Added map marker for ' + park.name + ' at ' + park.lat + ', ' + park.lng); 
     } 
     }); 
    }); 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 

回答

1

google.maps.LatLng构造期望你在纬度和经度number型传输。目前,它以字符串形式传入(var latlng = park.lat + ',' + park.lng;)。删除了这一行,只是通过在park.latpark.lng值:

var location = new google.maps.LatLng(park.lat, park.lng); 

更多参考点击here

+0

谢谢,为什么我没有尝试,我不知道!现在完美的工作! – rctneil