我采取的方法(n)的标记位置自动适应窗格迄今为止一直:设置一个谷歌地图视口的各个位置
function addMarker(query) {
var geocoder = new google.maps.Geocoder();
var afterGeocode = $.Deferred();
// Geocode 'query' which is the address of a location.
geocoder.geocode(
{ address: query },
function(results, status){
if(status === 'OK'){
afterGeocode.resolve(results); // Activate deferred.
}
}
);
afterGeocode.then(function(results){
var mOptions = {
position: results[0].geometry.location,
map: map
}
// Create and drop in marker.
var marker = new google.maps.Marker(mOptions);
marker.setAnimation(google.maps.Animation.DROP);
var current_bounds = map.getBounds(); // Get current bounds of map
// use the extend() function of the latlngbounds object
// to incorporate the location of the marker
var new_bounds = current_bounds.extend(results[0].geometry.location);
map.fitBounds(new_bounds); // fit the map to those bounds
});
}
我遇到的问题是,在地图莫名无论新的标记是否适合当前的视口,缩小一定的量。
我在做什么错?
附录
我添加日志和一个额外的变量来捕捉地图界限后过渡作出(new_new_bounds)
current_bounds = // Map bounds before anything is done.
{-112.39575760000002, 33.60691883366427},
{-112.39295444655761, 33.639099}
new_bounds = // From after the extend
{-112.39295444655761, 33.60691883366427},
{-112.39575760000002, 33.639099}
new_new_bounds = // From after the fitbounds
{-112.33942438265382, 33.588697452015374},
{-112.44928766390382, 33.657309727063996}
什么是new_bounds说它的边界在扩展之后? – 2011-05-13 21:09:49
更新了诊断程序。 – dclowd9901 2011-05-13 21:26:33
它看起来像从(x1,y1),(x2,y2) - >(x2,y1),(x1,y2)的边界变化会引发问题。我不是100%,但那是我开始的地方。 – 2011-05-13 23:43:45