使用PHP MYSQL WHILE LOOP在Google Map v3上显示多个位置

时间:2013-06-12 15:01:13

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

我有这个代码曾经工作但现在不是。它用于使用Google地图版本3在地图上显示多个位置,方法是从数据库中的表中获取位置,并使用PHP WHILE循环遍历它们。只显示一个位置。代码如下:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
    var map ;
    function initialize() {
        var latlng = new google.maps.LatLng(53.933056, 9.503611);
        var myOptions = {
          zoom: 10,
          center: latlng,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        <?
            $query = mysql_query("SELECT 
                markers.id,
                markers.place,
                markers.address,
                markers.lat,
                markers.lng,
                markers.description,
                markers.type,
                images.id,
                images.thumb_path,
                images.main 
                FROM 
                markers,images 
                WHERE 
                markers.type = '".$type."' 
                AND markers.id = images.id 
                AND images.main = 1
                ");
            $numRows = mysql_num_rows($query);
            if($numRows > 0){
                while($row = mysql_fetch_assoc($query)){
        ?>
        var contentString = '<div id="content">'+
        '<img src="<?=$row['thumb_path'];?>" width="100" height="100" hspace="2" align="left" />'+
        '<h4><?=$row['place'];?></h4><p><?=$row['address'];?></p>'+
        '<p align="right"><a href="thedetails.php?id=<?=$row['id'];?>&lat=<?=$row['lat'];?>&lng=<?=$row['lng'];?>&type=<?=$type;?>">More Details</a>'+
        '</div>';
        var marker = add_marker(<?=$row['lat'];?>, <?=$row['lng'];?>,"<?=strtoupper($row['place']);?>",contentString);
        marker.setMap(map);
                <? } ?>
            <? } ?>
    }

    function add_marker(lat,lng,title,box_html) {

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

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

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

        return marker;
    }

请帮忙。

0 个答案:

没有答案