2016-07-25 51 views
0

我使用的是http://jsbin.com/nutawiboci/1/edit?html,output來顯示原點和目標座標的位置並在它們之間繪製一條弧線。所以我修改了map.arc()遍歷一個給定的起點和終點的座標:在map.arc中循環Json對象()

for (var i = 0; i < data.length; i++) { 

     var origin_long = data[i][0][0]; 
     var origin_lat = data[i][0][1]; 

     var destination_long = data[i][1][0]; 
     var destination_lat = data[i][1][1]; 



     map.arc([ 
      { 
      origin: { 
       latitude: origin_lat, 
       longitude: origin_long 
      }, 
      destination: { 
       latitude: destination_lat, 
       longitude: destination_long 
      } 
      } 
      ], {strokeWidth: 2}); 
    }; 

這實際工作,但它只能繪製的最後一個(從迴路),因爲它繪製之前破壞了之前的弧線下一個。我只是不知道如何在map.arc()中迭代。我希望循環這樣返回的東西:

 map.arc([ 
      { 
      origin: { 
       latitude: 43.445, 
       longitude: 83.435345 
      }, 
      destination: { 
       latitude: 324.2323, 
       longitude: -6 
      } 
      }, 
      { 
      origin: { 
       latitude: -53.445, 
       longitude: 333.4345 
      }, 
      destination: { 
       latitude: -24.2323, 
       longitude: 46.454 
      } 
      }, 
      { 
      origin: { 
       latitude: 53.045, 
       longitude: 663.4345 
      }, 
      destination: { 
       latitude: -94.2323, 
       longitude: 996.4454 
      } 
      } 
      ], {strokeWidth: 2}); 

循環比任何其他的方式也可以理解,我只是希望它以這種方式工作。謝謝!

回答

1

您將要覆蓋的值在loop..try推動各統籌到一個臨時數組,然後再臨時數組分配給map arc嘗試類似:

var temp = [] 
for (var i = 0; i < data.length; i++) { 

    var origin_long = data[i][0][0]; 
    var origin_lat = data[i][0][1]; 

    var destination_long = data[i][1][0]; 
    var destination_lat = data[i][1][1]; 

    var prepare = 
     {origin: { 
      latitude: origin_lat, 
      longitude: origin_long 
     }, 
     destination: { 
      latitude: destination_lat, 
      longitude: destination_long 

     }}; 
    temp.push(prepare); 
}; 

map.arc(temp,{strokeWidth: 2}) 
+0

謝謝!!這工作正常! – King

+0

Np。快樂的編碼! –