2012-03-27 3 views
0

Google지도에 마커로 표시 할 Lat 및 Lng를 꺼내는 콜백 URL이 있습니다. 나는 배열로 그것들을 넣고있다. 그러나 나는 그것들을 이해하기 위해서 나는 그것들을 나누어야한다고 생각한다. 각 배열 요소는 위도와 LNG는 별도의 것이다 있도록Google지도, 마커 용 Lat 및 Lng 배열 전달 중

function jsonData(){ 
     $.ajax({ 
      url: https://api.foursquare.com/v2/users/self/checkins?oauth_token=FUKXDJRWIB0AQ2MQUKUEUSB3KW2TMYKUMFGYLYUHBBH14CQ0&v=20120126, 
      cache: false, 
      dataType: 'json', 
      success: function(results) { 
       var lat; 
       var long; 
       var paths = []; 
       for(var i = 0; i < results.response.checkins.items.length; i++) { 
        var lat = results.response.checkins.items[i].venue.location.lat; 
        var long = results.response.checkins.items[i].venue.location.lng; 
        var pathDetails = lat +"," + long; 
        paths.push(pathDetails); 
       } 
       drop(paths); 
      } 
     }); 
    }; 


     var directionsDisplay; 
     var directionsService = new google.maps.DirectionsService(); 
     var map; 

     var neighborhoods = []; 

     var markers = []; 
     var iterator = 0; 

     function initialize() { 
       var myLatlng = new google.maps.LatLng(-25.363882,131.044922); 
       directionsDisplay = new google.maps.DirectionsRenderer(); 
       //var newyork = new google.maps.LatLng(40.7051157, -74.0088305); 
       var myOptions = { 
       zoom:1, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
       } 

       map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
       directionsDisplay.setMap(map); 

       var start = "new york, ny"; 
       var end = "los angeles, ca"; 
       var request = { 
       origin:start, 
       destination:end, 
       travelMode: google.maps.TravelMode.DRIVING 
       }; 
       directionsService.route(request, function(result, status) { 
       if (status == google.maps.DirectionsStatus.OK) { 
        directionsDisplay.setDirections(result); 
       } 
       }); 
      } 


      function drop(neighborhoods) { 
      console.log("Passing in data: " + neighborhoods); 
      for (var i = 0; i < neighborhoods.length; i++) { 
       setTimeout(function() { 
       addMarker(); 
       }, i * 200); 
      } 
      } 

      function addMarker() { 
      markers.push(new google.maps.Marker({ 
       position: neighborhoods[iterator], 
       map: map, 
       draggable: false, 
       animation: google.maps.Animation.DROP 
      })); 
      iterator++; 
      } 

$(document).ready(function() { 
    jsonData(); 
    drop(); 

}); 

답변

0

약 4 가지 변경 사항을 만들었습니다. 이웃은 지역 변수 (nx로 이름을 바꿨습니다)와 전역 변수입니다.

0

당신은 배열의 배열을 저장할 수 당신은 좋아하는 그들에게 참조 할 수 : arrayName[i][0]arrayName[i][1]을.

Google LatLng으로 포인트를 전환 한 다음 해당 포인트의 배열을 저장하면 작동한다고 생각합니다.

편집 : 현재 코드가 어떻게되어 있는지 두 번째 옵션이 더 좋을 것이라고 생각합니다. 그렇지 않으면 addMarker 함수에서 값을 가져 와서 LatLng으로 바꾸고 그 점을 점으로 사용해야합니다

관련 문제