2016-07-25 3 views
0

나는 http://jsbin.com/nutawiboci/1/edit?html,output을 사용하여 출발점과 목적지 좌표의 위치를 ​​보여주고 그들 사이에 호를 그립니다.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()에서 반복하는 법을 모른다. 루프가 다음과 같이 반환되기를 원합니다.

 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. 해피 코딩! –