将来自 firebase 的标记添加到网站中的 google 地图
Add markers from firebase to google map in website
Firebase 数据结构:
我需要使用这些 latlang 在 google 地图中添加标记。
我的代码:
<script>
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 6.930274, lng: 79.861618},
zoom: 16.5,
panControl: false,
gestureHandling: 'greedy',
disableDefaultUI: true,
disableDoubleClickZoom: true,
});
var dbRef= firebase.database().ref('bins');
dbRef.on('value', function(snapshot) {
var snap = snapshot.val();
var marker = new google.maps.Marker({
position: {lat: snap.lat, lng: snap.lang},
map: map
});
});
}
</script>
这段代码运行时没有任何反应。
这是因为您没有访问 bins
的子项,您必须使用 forEach
才能获取值:
var dbRef= firebase.database().ref('bins');
dbRef.on('value', function(snapshot) {
snapshot.forEach(function(child) {
var childs=child.val();
var marker = new google.maps.Marker({
position: {lat: childs.lat, lng: childs.lang},
map: map
});
});
});
看看这个
在位置使用 parseFloat()
因为 firebase return 数据作为 strings.
position: {lat: parseFloat(snap.lat), lng: parseFloat(snap.lang)}
Firebase 数据结构:
我需要使用这些 latlang 在 google 地图中添加标记。
我的代码:
<script>
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 6.930274, lng: 79.861618},
zoom: 16.5,
panControl: false,
gestureHandling: 'greedy',
disableDefaultUI: true,
disableDoubleClickZoom: true,
});
var dbRef= firebase.database().ref('bins');
dbRef.on('value', function(snapshot) {
var snap = snapshot.val();
var marker = new google.maps.Marker({
position: {lat: snap.lat, lng: snap.lang},
map: map
});
});
}
</script>
这段代码运行时没有任何反应。
这是因为您没有访问 bins
的子项,您必须使用 forEach
才能获取值:
var dbRef= firebase.database().ref('bins');
dbRef.on('value', function(snapshot) {
snapshot.forEach(function(child) {
var childs=child.val();
var marker = new google.maps.Marker({
position: {lat: childs.lat, lng: childs.lang},
map: map
});
});
});
看看这个
在位置使用 parseFloat()
因为 firebase return 数据作为 strings.
position: {lat: parseFloat(snap.lat), lng: parseFloat(snap.lang)}