[英]Can't access to data in firestore snapshot to Add Markers to Google Maps stored in Firebase
我需要幫助訪問 firebase Firestore 快照中的數據,我需要緯度和經度。 我在數據庫和 Geopoint 中都有這兩個字段。 我可以在 console.log 中看到數據,但我無法訪問單個值。 到目前為止,我在這里嘗試了不同的方法,使用 doc.latitude 或 doc.longitude 我沒有收到錯誤,但也無法檢索數據。
function initialize() {
var latlng = new google.maps.LatLng(18.465733327729314, -69.93029399778331);
var myOptions = {disableDefaultUI: true, zoom: 9, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
var map = new google.maps.Map(document.getElementById("map"), myOptions);
db = firebase.firestore();
db.collection("GranSantoDomingo").get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(doc.id, "=>", doc.data());
var marker = new google.maps.Marker({
position: {lat: parseFloat(doc.latitude), lng: parseFloat(doc.longitude)},
map: map,
});
}
);
});
}
系統不讓我發圖,但是數據結構是這樣的:
{
"location":"Geopoint(18.7611489,-69.0386113)",
"sector":"EL SEIBO I ",
"calle":"Av. MANUELA DIEZ ( EN LA GERENCIA)",
"latitude":"18.7611489",
"longitude":"-69.0386113"
}
明白了:獲取元素的正確方法:
function initialize() {
var latlng = new google.maps.LatLng(18.465733327729314, -69.93029399778331);
var myOptions = {disableDefaultUI: true, zoom: 9, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, zoomControlsEnabled: true,
LocationEnabled: true,
LocationButtonEnabled: true, };
var map = new google.maps.Map(document.getElementById("map"), myOptions);
db = firebase.firestore();
db.collection("GranSantoDomingo").get().then((querySnapshot) => {
for (i = 0; i < querySnapshot.docs.length; i++) {
var Latitude = (querySnapshot.docs[i].data().latitude);
var Longitude = (querySnapshot.docs[i].data().longitude);
var marker = new google.maps.Marker({
position: {lat: parseFloat(Latitude), lng: parseFloat(Longitude)},
map: map,
});
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.