我有一个Google Map,我想添加表示会员地址位置的标记,但是我有一个不太清楚的小问题。
如果我满足以下条件:
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
var marker = new google.maps.Marker({
position: {lat: 39.099, lng: -105.129},
map: map,
title: ''
});
以上内容成功创建了地图并成功添加了标记,因此我知道自己处在正确的轨道上。但是当我将脚本编辑为以下内容时:
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
$.each(data[1].locations, function(i, item) {
var marker = new google.maps.Marker({
position: {lat: item.latitude, lng: item.longitude},
map: map,
title: ''
});
});
这次,创建了地图,但未显示任何标记(即使以上内容正确响应了适当的坐标,我在控制台中还是遇到以下错误:InvalidValueError: setPosition: not a LatLng or LatLngLiteral: in property lat: not a number
答案 0 :(得分:0)
确保仅在ajax请求完成后才添加标记。 仅在ajax的成功部分中添加标记。
示例:
$.ajax({
url: "ajaxmap.php",
type : 'GET',
dataType: 'json',
success : function(data) {
$.each(data[1].locations, function(i, item) {
var marker = new google.maps.Marker({
position: {lat: item.latitude, lng: item.longitude},
map: map,
title: ''
});
}