从firebase添加标记到网站中的谷歌地图

时间:2018-03-23 05:49:58

标签: javascript google-maps firebase google-maps-markers marker

Firebase数据结构

enter image description here

我需要使用这些latlang在谷歌地图中添加标记。

我的代码

    <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>

此代码运行时没有任何反应。

2 个答案:

答案 0 :(得分:4)

检查出来

在位置使用parseFloat(),因为firebase将数据作为字符串返回。

位置:{lat:parseFloat(snap.lat),lng:parseFloat(snap.lang)}

答案 1 :(得分:2)

这是因为您无法访问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
          });
       });
   });