Google Maps Multi Marker无法使用

时间:2016-06-20 15:16:08

标签: javascript php google-maps google-maps-api-3

我想在地图上显示多个标记,但它只有一个。当我检查控制台时,可以看到所有lat和long值。但只有一个标记。

这段代码是我的PHP代码。

    $query="SELECT lat, lng, FROM mytable limit 5 offset $offset";
    $result = pg_exec($dbconn, $query);
    $response = pg_fetch_all($result);
    $data=json_encode($response, JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
    $data1 = json_decode($data, true);

这段代码是我的js代码和php代码。

    function initMap() {
      <?php for($i=0; $i<5; $i++){ ?>
    var myLatLng = {lat:<?=$data1[$i]['lat']?>, lng:<?=$data1[$i]['lng']?>};
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 19,
      center: myLatLng
    });
    var marker = new google.maps.Marker({
      position: myLatLng,
      map: map,
      title: 'Hello World!'
    });
      <?php } ?>
  }   

1 个答案:

答案 0 :(得分:2)

我认为这是因为你覆盖你的地图,把地图init放在循环之外。

function initMap() {
   var center = {lat: -34.397, lng: 150.644};
   var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 19,
      center: center
  });

  <?php for($i=0; $i<5; $i++){ ?>
        var myLatLng = {lat:<?=$data1[$i]['lat']?>, lng:<?=$data1[$i]['lng']?>};

        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            title: 'Hello World!'
        });
  <?php } ?>
}