将标记添加到 Ajax 请求响应中生成的谷歌地图



>我有一个谷歌地图,我想添加表示会员地址位置的标记,但我有一个不太明白的小问题。

如果我有以下情况:

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

确保仅在 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: ''
});
}

相关内容

  • 没有找到相关文章

最新更新