2013-03-09 48 views
0

我有一個SQL查詢,我將結果與mysql_fetch_array傳入while循環,並且我正在打印一張表。我認爲,每行中包含的信息都是在地圖上構建的。 當我構建地圖時,問題在於地圖總是居中在表格的最後一行(C標記)。而不是我想要的地圖中心到標記A(表的第一行)。 我正在尋找扭轉陣列,但不起作用。打印標記與v2 API與表信息的順序不同

<?php 
    while($info4 = mysql_fetch_array($result4)) 
    {  

    ?> 


     // A function to create the marker and set up the event window 
     function createMarker(point, name, html, flag) 
     { 
     //set the icon of the marker   
     var letteredIcon = new GIcon(baseIcon); 
     letteredIcon.image = "markers/"+flag+".png"; 

     // Set up our GMarkerOptions object 
     markerOptions = { icon:letteredIcon }; 
     var marker = new GMarker(point, markerOptions); 
     GEvent.addListener(marker, "click", function() { 
      marker.openInfoWindowHtml(html); 
     }); 
     // save the info we need to use later for the side_bar 
     gmarkers.push(marker); 
     // add a line to the side_bar html 
     side_bar_html += '<td><a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a><\/td>'; 
     return marker; 
     } 


     // add the points 
     map.setCenter(new GLatLng(<?php print $info4['placeY'];?>,<?php print $info4['placeX'];?>), 14);  
     var point = new GLatLng(<?php print $info4['placeY'];?>,<?php print $info4['placeX'];?>); 
     var marker = createMarker(point,"<?php print utf8_decode($info4['placeName']);?>","<?php print utf8_decode($info4['placeName'])."<br>".utf8_decode($info4['placeAddress'])."<br>".utf8_decode($info4['placeDistrict']);?>","<?=$flag;?>") 
     map.addOverlay(marker); 

    <?php $flag=$flag+1; 
    } ?> 

一個例子: 表:

甲觀光劇場

潮汐

的乙觀光現象

Ç觀光紅屋

在這個例子中地圖以C標記爲中心,而不是我想要看到的A標記。

+0

你都知道,[谷歌地圖API V2](https://developers.google.com/maps/documentation/javascript/v2/reference)已被正式棄用2010年5月19日? V2 API將繼續工作到2013年5月19日。該API的新發展不鼓勵。 – geocodezip 2013-03-09 16:14:08

回答

0

所以,而不是使用while循環,正確的代碼如下。

//make an array 
    $rows = array(); 
while ($row=mysql_fetch_array($result4)){ 
//push the rows to the empty array 
    array_push($rows, $row); 
} 
// reverse the order of the rows 
$reversedarray=array_reverse($rows); 
    //use the info of each row as the variable $info4 
foreach ($reversedarray as $info4) { 
    //the code