我的地图和代码循环遍历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);
答案 0 :(得分:1)
google.maps.LatLng
构造函数希望您将纬度和经度传递为number
类型。目前,它以字符串形式传递(var latlng = park.lat + ',' + park.lng;
)。删除该行,然后传递park.lat
和park.lng
值:
var location = new google.maps.LatLng(park.lat, park.lng);
如需更多参考,请点击here。