2011-07-23 7 views
0

Google Maps APIを使用して、特定の車両の位置がDBのデータを使用してレンダリングされています。私はすでにこれを実装しています。 1からDECEMBREの2に100ヶ所にされて、私はちょっとそのパスを示す1から100までの開始番号を持つたい、これが私のGoogle 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ファイルです。このリストを使用して数字を取得できますか?

  // 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がマーカーの番号付けをサポートしていないことは間違いありません。私は2つの不満足な選択肢について考えることができます。

  1. zIndexを設定し、zIndexをマーカーのタイトルとして表示します。
  2. setIconを使用して、MarkerImageを番号付きのグラフィックに変更します。

私は通常、これよりも良い答えがあります。私は "オフ"の日を過ごしていると思う。

+0

アイコンのコードに関するコードを更新しましたが、数字が動的になっているという問題があります。クエリの最初の結果から始めて、最後の番号まで番号を付ける必要があります。 – pinky

0

GoolgeがGoogleのチャートAPIを持っているので、カスタムマーカーを作成する必要はありません。自分のアプリケーションに番号付きのアイコンを作成するのに使っています。それは私に頭痛の多くを節約します。

1

大丈夫、@ChristopheCVBのリンクに従ってください! Lemmeは誰かが将来必要とするコードを共有します

このコードは、基本的に1から1000までの数字の1000個のアイコンを作成します。javascriptファイルmapiconmaker.jsが必要です。ダウンロードして他のWebサイトファイル、その後

    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); 
     } 

私は機能がマップをレンダリングしているし、それはコードがここにあるそれぞれの場所にマーカーを割り当てるされている場合はJavaScript GoogleマップのAPIこれらのマーカーを使用します。

  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; 
      } 

私は新たなんですこれまでte、しかし本当に専門家からの自由で速い助けを得る精神が大好きです、私は確かに時間がatleastに行くように貢献します。私は何を得るのabitを与える。皆さんありがとう!

関連する問題