2012-03-29 6 views
0

私は履歴の負荷を集めて各位置のマップマーカーを追加していますが、各マーカー間にどのようにポリラインを描くことができるのだろうか?各位置ごとにgmap3ポリラインを作成する

jQuery.each(json, function(i, item) { 
       var name = item.name; 
       var userId = item.data.user; 
       jQuery.each(item.data.data, function(i, nav) { 
        var ts = nav.timestamp; 
        var lat = nav.latitude; 
        var long = nav.longitude; 

        if (lat != null && long != null) { 
         addMarker(name, counts = counts + 1, ts, lat, long, userId); 
        } 
       }); 
      }) 

私はポリライン

function addPolyline() { 
    jQuery("#gMap").gmap3({ 
     action: 'addPolyline', 
     options:{ 
     strokeColor: "#FF0000", 
     strokeOpacity: 1.0, 
     strokeWeight: 2 
     }, 
     path:[ 
     [37.772323, -122.214897], 
     [21.291982, -157.821856], 
     [-18.142599, 178.431], 
     [-27.46758, 153.027892] 
     ] 
    }); 

}

しかし、私は、foreachのデータからポリラインを描くことができます方法をfugureのに苦労を描画するための簡単な関数を作成しますか?

答えて

1

すでに点の配列を持っている、またはあなたが呼び出したい場合

var polyArray=[ 
      [37.772323, -122.214897], 
      [21.291982, -157.821856], 
      [-18.142599, 178.431], 
      [-27.46758, 153.027892] 
      ]; 

    function addPolyline(polyArray) { 
     jQuery("#gMap").gmap3({ 
      action: 'addPolyline', 
      options:{ 
      strokeColor: "#FF0000", 
      strokeOpacity: 1.0, 
      strokeWeight: 2 
      }, 
      path:polyArray 
     }); 

    } 

わからない引数として配列を受け入れるようにaddPolyline()機能を変更するデータの部分から1を構築することができますJSONデータに仮定すると、これをデータの各ループに適用するか、各ループのデータを配列に格納し、最後に一度だけ呼び出します。

一度だけループした後、それを呼び出す場合:

var polyArray=[]; 

    $.each(json, function(i,item){ 
     /* your other parsing code....plus add to polyArray*/     
     polyArray.push([ item.someValue, item.otherValue]);    

    }); 
    addPolyline(polyArray); 
+0

は素晴らしい作品ありがとう –

関連する問題