未显示多个标记映射 API



我正在制作一个网络,我有一个位置列表,我想显示这些位置中的所有标记。

这是我的代码:

if (navigator.geolocation) {
geoLoc = navigator.geolocation;
var user_list = [];
watchID = geoLoc.watchPosition(function showLocation(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var dateTime = date+' '+time;
fStore.collection("User").doc(userID).update({
latitude: lat,
longitutde: lng,
time: dateTime
})
fStore.collection("User").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
if (doc.id != userID){
// doc.data() is never undefined for query doc snapshots
user_list.push(doc.data());
console.log(user_list);
console.log(user_list.length);
}
});
for (var i = 0; i < user_list.length; i++){
console.log("can you?");
createMarker({
position: new google.maps.LatLng(user_list[i][2], user_list[i][3]),
map: map,
title: user_list[i][0]
});
console.log("drawn?")
}
})
}, errorHandler,  {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
});
}

我尝试在代码中执行控制台.log以查看它是否运行,并且它也返回这些控制台日志,但没有绘制标记。

以下是列表中的记录示例:

user_list= [{
address: "test"
email: "lalala@gmail.com"
first_name: "test"
last_name: "test"
latitude: 39.9572992
longitutde: -75.2091136
time: "2020-5-16 23:51:6"
userID: "gV2hZe1wf3f9FF00r3apYpKSb743"
}]

问题是你访问对象的方式。您需要dot(.)运算符才能从对象访问值。user_list[i].latitude

for (var i = 0; i < user_list.length; i++) {
console.log("can you?");
createMarker({
position: new google.maps.LatLng(user_list[i].latitude, user_list[i].longitutde), // Here, 
map: map,
title: user_list[i].address,
});
console.log("drawn?");
}

您可以简化使用forEach

user_list.forEach((user) => {
createMarker({
position: new google.maps.LatLng(user.latitude, user.longitutde),
map: map,
title: user.address,
});
});

相关内容

  • 没有找到相关文章

最新更新