Javascript 为什么这个边界对象没有得到扩展?
在这个JSON-p回调中,我试图通过迭代中下载的每个标记扩展名为Javascript 为什么这个边界对象没有得到扩展?,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,在这个JSON-p回调中,我试图通过迭代中下载的每个标记扩展名为bounds(前面声明)的对象。在日志中,它确实被设置为边界对象,但NE SW是相同的: ie $:de b:18.0313936999967 d:18.0313936999967 __原型:德 Y:他 b:59.2933167 d:59.2933167 __原型:他 __原型:ie 为什么??这快把我逼疯了 addStoreMarkers: function(data) { /** This is the
bounds
(前面声明)的对象。在日志中,它确实被设置为边界对象,但NE SW是相同的:
ie
$:de
b:18.0313936999967
d:18.0313936999967
__原型:德
Y:他
b:59.2933167
d:59.2933167
__原型:他
__原型: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);
},
您正在为每个标记创建新边界。您应该在for循环之外创建边界
//create the bounds representing all downloaded markers
bounds = new google.maps.LatLngBounds();
bounds.extend(marker.position);