2012-02-16 17 views
0

このJSON-Pコールバックでは、イテレーションでダウンロードされた各マーカーによってboundsというオブジェクト(先に宣言されている)を拡張しようとしています。ログでは、境界オブジェクトとして設定しますんが、NE SWは同じです:この境界オブジェクトが拡張されないのはなぜですか?

ie $: de b: 18.031393699999967 d: 18.031393699999967 __proto__: de Y: he b: 59.2933167 d: 59.2933167 __proto__: he __proto__: ie

なぜ?これは非常識な私を運転している。..

addStoreMarkers: function(data) { 
      /** This is the function that the injected script automatically calls, it passes the markers data in the form 
       JSON (an array object) as an argument. **/ 

       //iterate over each instance in the data 
       for (var i in data.markers) { 

        //set marker icon 
        var image = new google.maps.MarkerImage('images/'+ data.markers[i].icon +'.png', 
         new google.maps.Size(32.0, 37.0), 
         new google.maps.Point(0, 0), 
         new google.maps.Point(16.0, 37.0) 
        ); 

        //set icon shadow 
        var shadow = new google.maps.MarkerImage('images/shadow.png', 
         new google.maps.Size(51.0, 37.0), 
         new google.maps.Point(0, 0), 
         new google.maps.Point(16.0, 35.0) 
        ); 

        //add markers to map 
        var marker = new google.maps.Marker({ 
         position: new google.maps.LatLng(data.markers[i].lat, data.markers[i].lgt), 
         map: map, 
         visible: false, 
         icon: image, 
         shadow: shadow 
        }); 

        //add marker to markers array 
        markers.push(marker); 

        //create the bounds representing all downloaded markers 
        bounds = new google.maps.LatLngBounds(); 
        bounds.extend(marker.position); 

        //store infoBox data in markers array 
        markers[i].store = data.markers[i].store; 
        markers[i].distance = data.markers[i].distance; 
        markers[i].i = i; 

        //add click-listener to marker 
        google.maps.event.addListener(markers[i], 'click', function() { 
         //on click 
          //set parameter active (so it won't hide) 
          Map.setMarkerActive(this); 
          //call todisplay custom infoWindow function 
          Map.displayInfo(this); 
        }); 

       } 

       console.log(bounds); 

       //fitbounds if requested, else pan a bit to call updateView 
       if(first){Map.fitBounds(5);first=false;} else {map.panBy(1,1);} 

       //remove data from the DOM 
       ejectDOM('#jsonp_ref'); 

       //notify 
       Menu.setStatus('Klart!'); 

       //housekeeping 
       delete data; 

       console.log('add markers function complete ' + markers.length); 
     }, 

答えて

1
//create the bounds representing all downloaded markers 
bounds = new google.maps.LatLngBounds(); 
bounds.extend(marker.position); 

あなたは、各マーカーのための新しい境界を作成しています。 forループの外側に境界を作成する必要があります。

+0

私はそれを見ていないとは信じられません。 – jenswirf

関連する問題