Не отображается несколько маркеров MAP 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
});
}
Я пытаюсь сделать console.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"
}]
1 ответ
Проблема в том, как вы получаете доступ к объекту. Вам нужно 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,
});
});