2012-03-27 30 views
0

Google Maps上にマーカーとして表示するLatとLngを引き出しているコールバックURLがあります。私はそれらを配列に入れていますが、私はそれらを分割してGoogleマップがそれらを理解できるようにしなければならないと思います。Googleマップ、マーカーの緯度と経度の配列を渡すか?

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に変更しました)とグローバルです。

ここでの変更を参照してください。 http://jsfiddle.net/JVQTK/

0

各配列要素は、緯度とLNG別のを持っているでしょうように、あなたは、あなたがのようにそれらを参照することができ、配列の配列を格納することができ:arrayName[i][0]arrayName[i][1]

ポイントをGoogle LatLngに変換してからそれらの配列を保存すると機能するかもしれません。

編集:あなたのコードがどのようになったのか、私は2番目の選択肢がより良いと思います...そうでなければ、addMarker関数では、値をとり、それらをLatLngに変換し、

関連する問題