创建多个标记和infowindows谷歌地图

时间:2014-05-28 18:41:48

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

嘿伙计们,我正在尝试将多个标记和infowindows添加到地图中 这是代码:

        while($wiersz=mysql_fetch_array($result)){
        $latit=$wiersz["Latitude"];
        $longit=$wiersz["Longitude"];
        $nick=$wiersz["Username"];
         ?>

        var lt = '<?php echo $latit ?>';
        var lng = '<?php echo $longit ?>'; 
        var nick = '<?php echo $nick ?>';
        var coords2 = new google.maps.LatLng(lt, lng);
        var marker = new google.maps.Marker({
                position: coords2,
                map: map,
         });

        var infowindow = new google.maps.InfoWindow({
         content:nick
           });

         google.maps.event.addListener(marker, 'click', function() {
         infowindow.open(map,marker);
         });
         <?php  } ?>

它会创建标记,但是当我尝试使用infowindow时,只会弹出最后一个。 我尝试制作数组信息窗口,因为我看到了类似的问题,但地图甚至没有加载。

1 个答案:

答案 0 :(得分:1)

将您的代码更改为

var marker = new Array();
 var infowindow = new Array();
<?php $i = -1; 
while($wiersz=mysql_fetch_array($result)){
            $latit=$wiersz["Latitude"];
            $longit=$wiersz["Longitude"];
            $nick=$wiersz["Username"];
            $i++;
             ?>

            var lt = '<?php echo $latit ?>';
            var lng = '<?php echo $longit ?>'; 
            var nick = '<?php echo $nick ?>';
            var coords2 = new google.maps.LatLng(lt, lng);
            marker[<?php echo $i; ?>] = new google.maps.Marker({
                    position: coords2,
                    map: map,
             });

           infowindow[<?php echo $i; ?>] = new google.maps.InfoWindow({
             content:nick
               });

             google.maps.event.addListener(marker[<?php echo $i; ?>], 'click', function() {
             infowindow[<?php echo $i; ?>].open(map,this);
             });
             <?php  } ?>