【问题标题】:Adding all marker fetched from Firebase database添加从 Firebase 数据库获取的所有标记
【发布时间】:2018-10-18 14:06:38
【问题描述】:

从 Firebase 获取纬度/经度位置列表后,我可以为最后一个用户添加一个标记,但我想从所有获取的用户中添加所有标记。

Lat Lng fetched from firebase

$(document).ready(function(){
  var rootRef = firebase.database().ref().child("driversAvailable");
  rootRef.on("child_added",snap=>{
    var lat = snap.child("l").child("0").val();
    var lng = snap.child("l").child("1").val();
    console.log(name,phone);

    $('ol').append( '<li>' + lat +" : " + lng + '</li>' );

    var uluru = {lat: lat, lng: lng};
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 15,
      center: karachi
    });
    var marker = new google.maps.Marker({
      position: uluru,
      map: map
    });
  });
});

【问题讨论】:

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


【解决方案1】:

您正在为每个位置创建一个新的地图实例,这就是为什么您只看到最后一个标记,它被添加到新地图中。

只需将地图创建移到侦听器之外,如下所示:

$(document).ready(function(){
    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 15,
        center: karachi
    });
    var rootRef = firebase.database().ref().child("driversAvailable");
    rootRef.on("child_added",snap=>{
        var lat = snap.child("l").child("0").val();
        var lng = snap.child("l").child("1").val();
        console.log(name,phone);

        $('ol').append( '<li>' + lat +" : " + lng + '</li>' );

        var uluru = {lat: lat, lng: lng};
        var marker = new google.maps.Marker({
            position: uluru,
            map: map
        });
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 2018-09-15
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 2021-05-27
    相关资源
    最近更新 更多