2014-02-18 6 views
0

여기 내 요구 내가 JSON 응답으로 별도로이 값을 얻을 수있어가 이걸 사용 스프링 MVC + AJAX + JQuery와 + 구글 맵 3.0 같은 배열을 만들 수자바 스크립트 다차원 배열을 만드는 방법은 무엇입니까?

필요가있다.

 
1. city name 
2. long 
3. lat 
var markers = [['Bondi Beach', -33.890542, 151.274856],['Coogee Beach', -33.923036, 151.259052],['Cronulla Beach', -34.028249, 151.157507],['Manly Beach', -33.80010128657071, 151.28747820854187],['Maroubra Beach', -33.950198, 151.259302]]; 

어떻게 기록 이상 (20, 30) 이 3D 배열을. 수 functions.may 자바 스크립트 배열 루프 위에 만드는 방법?

나의 목표 결과를 얻기 위해이 문제를 모든

아래 내 스크립트 코드를 보여

감사를 분류 나 그 수정하는 데 도움이 저를 도와주세요

function jsonResponse(){ 
    var longitude=0; 
    var latitude=0; 
    var merchant=''; 
    var total =0; 

    $.ajax({ 
     url: 'merchantsList.html', 
     dataType: 'json', 
     contentType: 'application/json', 
     mimeType: 'application/json', 
     success: function(data) { 
      longitude=data.longitude; 
      latitude=data.latitude; 
      merchant=data.merchant; 
      total = data.length; 
     }, 
     error:function(data,status,er) { 
      alert("error: "+data+" status: "+status+" er:"+er); 
     } 
    }); 

    var markers = [['Bondi Beach', -33.890542, 151.274856],['Coogee Beach', -33.923036, 151.259052], 
        ['Cronulla Beach', -34.028249, 151.157507],['Manly Beach', -33.80010128657071, 151.28747820854187], 
        ['Maroubra Beach', -33.950198, 151.259302]]; 
    var infowindow = new google.maps.InfoWindow(), marker, i; 
    for (i = 0; i < markers.length; i++) { 
     marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(latitude, longitude), 
      map: map 
      });} 
    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      infowindow.setContent(markers[i][0]); 
      infowindow.open(map, marker); 
     }; 
    })(marker, i)); 

} 
+2


. 중첩 된 배열을 만들려고합니다 (JS에는 다차원 배열이 없습니다.)하지만 코드에서 정확히 다차원 배열을 제공합니다. 당신이 가지고있는 문제는 무엇입니까? – Andy

+0

덕분에 사랑하는 앤디. 아래의 솔루션 덕분에 나를 도와 줬어. –

답변

1

일부 야생 가정 : 샘플 데이터를 var에 마커를, 당신은 아약스 쿼리에 의해 반환 된 내용으로 그것을 대체 할, 당신은 현재 마커에서이 위도 긴 얻을 필요 city ​​name == ajax 데이터의 판매자.

merchantsList.html에서 되돌아 오는 데이터에 여러 가맹점/long/lat 항목이있는 경우 데이터를 반복하고 각 데이터를 마커 배열에 추가해야합니다. 당신이 요구하는지 분명하지 않다

var markers = []; 

// ajax call start here.. 
    // ... 
    success: function(data) { 
     var i, item; 
     for (i = 0; i < data.length; i++) { 
      item = data[i]; 
      markers.push([item.merchant, item.longtitude, item.latitude]); 
     } 
    }, 
// ajax call end code here 
+0

많은 감사합니다 Mr. MSpreij –

1

다차원 배열 만들기 자바 스크립트에서

var iMax = 20; 
var jMax = 10; 

var f = new Array(); 

for (i=0;i<iMax;i++) { 

f[i]=new Array(); 

for (j=0;j<jMax;j++) { 

    f[i][j]=0; 

} 

} 
나는 당신이 당신의 마커를 반복 할 방법에 대해 이야기하고 있으리라 믿고있어
+0

당신의 모든 답변이 나에게 많은 도움이된다. 감사합니다 Tamizh :-) –

1

... 당신은 현재이 수행

var infowindow = new google.maps.InfoWindow(), marker, i; 
for (i = 0; i < markers.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(latitude, longitude), 
     map: map 
     }); 
} 

을하지만이 작동하지 않습니다 new google.maps.LatLng(latitude, longitude).

position: new google.maps.LatLng(markers[i][1], markers[i][2]), 
+0

RobH.now 감사합니다. –

관련 문제