2011-07-23 63 views
0

我在我的項目中使用GoogleMap API,通過使用數據庫中的數據渲染特定車輛的位置,我已經實現了這一點,我的問題是如果它有可能在標記上得到數字,一直在1 100個地方Decembre 2,我想有開始從1到100的數字還挺顯示出它的路徑,這是創造我的谷歌API的標記功能:如何將數字放在Google Map API標記上?

function createMarker(point, IMEI, Velocity, Ora, Data) { 
     var marker = new GMarker(point, iconBlue); 
     var html = "<b>" + "Ora: " + "</b>" + Ora + "<br/>" + "<b>" + "Data: " + "</b>"+ Data + "<br/>" + "<b>" + "Velocità: " + "</b>" + Velocity + " km/h" ; 
     GEvent.addListener(marker, 'click', function() { 
     marker.openInfoWindowHtml(html); }); 
     return marker; 
    } 

這是他們所使用的代碼輸出被googmapsapi.html使用,輸出是一個簡單的xml文件,其中包含許多「標記」標記,包含諸如long,lat,日期和時間等信息,可以使用該列表以某種方式獲取數字嗎?

  // Opens a connection to a MySQL server 
$connection=mysql_connect ("localhost","root","alphabravo"); 
if (!$connection) { 
    die('Not connected : ' . mysql_error()); 
        } 

// Set the active MySQL database 
$db_selected = mysql_select_db("tracciasat", $connection); 
if (!$db_selected) { 
    die ('Can\'t use db : ' . mysql_error()); 
      } 

// Select all the rows in the markers table 
//$query = "SELECT * FROM sessione WHERE 1"; 
$query = "SELECT * FROM sessione WHERE Dat BETWEEN '$_GET[strt]' AND '$_GET[end]' AND IMEI = '$_GET[id]'"; 
$result = mysql_query($query); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
       } 

header("Content-type: text/xml"); 

// Start XML file, echo parent node 
echo '<markers>'; 

    // Iterate through the rows, printing XML nodes for each 
while ($row = @mysql_fetch_assoc($result)){ 
// ADD TO XML DOCUMENT NODE 
    echo '<marker '; 
    echo 'IMEI="' . parseToXML($row['IMEI']) . '" '; 
    echo 'Velocity="' . parseToXML($row['Velocity']) . '" '; 
    echo 'Ora="' . parseToXML($row['Ora']) . '" '; 
     echo 'Data="' . parseToXML($row['Dat']) . '" '; 
    echo 'lat="' . $row['Latitudine'] . '" '; 
     echo 'lng="' . $row['Longitudine'] . '" '; 
       //echo 'type="' . $row['type'] . '" '; 
       echo '/>'; 
                   } 

      // End XML file 
         echo '</markers>'; 

      } 

我想補充有關圖標的代碼,這在我的情況是blueIcon:

 var iconBlue = new GIcon(); 
iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png'; 
iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'; 
iconBlue.iconSize = new GSize(12, 20); 
iconBlue.shadowSize = new GSize(22, 20); 
iconBlue.iconAnchor = new GPoint(6, 20); 
iconBlue.infoWindowAnchor = new GPoint(5, 1); 

感謝您的時間!

回答

0

我很確定API不支持編號標記。我可以想到兩個不盡人意的選擇。

  1. 設置zIndex,然後顯示zIndex作爲標記的標題。
  2. 使用setIcon將MarkerImage更改爲編號圖形。

我通常比這個有更好的答案。我想我有一個「關閉」的一天。

+0

我剛剛更新了關於圖標代碼的代碼,問題是數字應該是動態的。所以從查詢的初始結果開始,它應該開始將它們編號到最後一個。 – pinky

1

好的傢伙,通過@ChristopheCVB鏈接我完成了它! Lemme分享將來有人需要的代碼

此代碼基本上創建1000個圖標,其中包含1到1000個數字,其中需要JavaScript文件mapiconmaker.js,因此需要下載它並將其與其他網站文件,

    type="text/javascript"></script> 
     <script src="mapiconmaker.js" language="text/javascript"></script> 
    <script type="text/javascript"> 

    //<![CDATA[ 
    var customIcons = [1000]; 
    for(var j=0;j<1000;j++){ 
    var iconOptions = {}; 
    iconOptions.primaryColor = "#0000FF"; 
    iconOptions.strokeColor = "#000000"; 
iconOptions.label = j.toString().replace(); 
iconOptions.labelColor = "#000000"; 
iconOptions.addStar = false; 
    iconOptions.starPrimaryColor = "#FFFF00"; 
iconOptions.starStrokeColor = "#0000FF"; 
    customIcons[j] = MapIconMaker.createLabeledMarkerIcon(iconOptions); 
     } 

然後我使用這些標誌時,GoogleMap的API JavaScript函數繪製地圖,當它被分配標記到該代碼是在這裏每一個位置:

  GDownloadUrl("second.php?strt="+ysdate+"/"+msdate+"/"+dsdate+"&end="+yedate+"/"+medate+"/"+dedate+"&id="+ide, function(data) { 
       var xml = GXml.parse(data); 
       var markers = xml.documentElement.getElementsByTagName("marker"); 
       for (var i = 0; i < markers.length; i++) { 
       var IMEI = markers[i].getAttribute("IMEI"); 
       var Velocity = markers[i].getAttribute("Velocity"); 
       var Ora = markers[i].getAttribute("Ora"); 
       var Data = markers[i].getAttribute("Data"); 
       var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), 
             parseFloat(markers[i].getAttribute("lng"))); 
       var marker = createMarker(point, IMEI, Velocity, Ora, Data, i); 

       map.addOverlay(marker); 

       } 
      }); 
      } 
     } 

     function createMarker(point, IMEI, Velocity, Ora, Data, i) {  
       var marker = new GMarker(point, customIcons[i]); 
       var html = "<b>" + "Ora: " + "</b>" + Ora + "<br/>" + "<b>" + "Data: " + "</b>"+ Data + "<br/>" + "<b>" + "Velocità: " + "</b>" + Velocity + " km/h" ; 
       GEvent.addListener(marker, 'click', function() { 
       marker.openInfoWindowHtml(html); }); 
       return marker; 
      } 

我是新到這個si但我真的很喜歡從專家那裏得到免費和快速幫助的精神,我一定會爲時間到最後回報我得到的東西作出貢獻。謝謝大家!

相關問題