2010-07-09 3 views
1

Google지도에서 javascript (버전 3)로 작업하고 있습니다. Jquery를 사용하기 위해 XML에서 일부 마커를 표시해야합니다.jquery.each() 외부에서 fitbounds 호출 문제

var VX = { 
    map:null, 
    bounds:null 
} 
VX.placeMarkers = function(filename) { 
    $.get(filename, function(xml) { 
     $(xml).find("marker").each(function() { 
      var lat   = $(this).find('lat').text(); 
      var lng   = $(this).find('lng').text(); 
      var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng)); 
      VX.bounds.extend(point);     
      VX.map.fitBounds(VX.bounds); //this works   
      var marker = new google.maps.Marker({ 
       position: point, 
       map: VX.map, 
       zoom: 10, 
       center: point 
       }); 
      }); 
     }); 
     //VX.map.fitBounds(VX.bounds);  //this shows me the ocean east of africa  
} 

그래서 basicaly 내 문제는 내가 .each 함수의 외부에서 fitbounds을 수행하는 방법을 알아낼 질수이며, 내부에 그 일 :

는 heres는 객체와 함수는 설명 나에게 시간을 절약 할 수 있습니다 함수는 나쁜 것으로 보이는 모든 마커에 대해 호출합니다.

지도를 초기화 할 때 경계를 선언합니다. havent에는 전체 300 줄이 포함되어 있기 때문에 전체 코드가 포함되었습니다.

나는 전역 객체에 전달한 값을 사용할 수 있습니까?

편집 : 아, get 함수 외부에서 호출하고있었습니다!

+1

내가 게시 한 코드가 전혀 작동하지 않습니다. 'VX'는'bounds.extend' 또는'map.fitBounds' 속성을 가지고 있지 않습니다. –

+0

구글 맵스 api 기능 – Stjerneklar

답변

0

아약스 get()이 반환되기 전에 두 번째 호출이 실행되기 때문에 호출이 작동하지 않습니다.

fitBoundsget() 처리기 안에 있지만 each() 함수 외부에 배치하십시오. 좋아요 :

var VX = { 
    map:null, 
    bounds:null 
} 
VX.placeMarkers = function(filename) 
{ 
    $.get 
    (
     filename, 
     function(xml) 
     { 
      $(xml).find("marker").each 
      (
       function() 
       { 
        var lat   = $(this).find('lat').text(); 
        var lng   = $(this).find('lng').text(); 
        var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng)); 

        VX.bounds.extend(point);     
        //VX.map.fitBounds(VX.bounds); //this works   

        var marker = new google.maps.Marker 
        ({ 
         position: point, 
         map: VX.map, 
         zoom: 10, 
         center: point 
        }); 
       } 
      ); 
      VX.map.fitBounds(VX.bounds); //-- This should work. 
     } 
    ); 
    //VX.map.fitBounds(VX.bounds);  //this shows me the ocean east of africa  
} 
+0

와우, 바로 그것입니다! 감사합니다 : D 내가 당신에게 upvote에 rep가 있었으면 좋겠다 :) – Stjerneklar