12
默认情况下,我有一个V3地图加载并以特定的经度/纬度为中心。一旦加载,用户可以输入他们的地址来获得该点的方向。发生这种情况时,地图会调整大小以容纳左侧的方向框。因此,地图窗口中的路线偏离中心。我尝试了下面的代码,我认为这应该在逻辑上起作用,但无济于事。在路线经过路线之后在路线上居中V3谷歌地图
新实现:如果我以任何方式调整窗口的大小,它会开始按预期工作。
发现问题:我在调整地图容器大小后需要触发google.maps.event.trigger(map, 'resize')
。
directionsService.route(query, function(result,status) {
if (status === google.maps.DirectionsStatus.OK) {
// This sets the directions container to display:block and resizes the map
document.getElementById('map-container').className = "directions";
directions.setDirections(result);
var bounds = result.routes[0].bounds;
map.fitBounds(bounds);
map.setCenter(bounds.getCenter());
} else {
alert("");
}
});
一旦你打电话fitBounds它应该基于LatLngBounds为基础,所以你不应该需要setCenter – kjy112 2011-03-19 23:01:41
是的,我在最后努力添加setCenter()。它不会像预期的那样集中或不集中。 – Justin 2011-03-19 23:11:35
完全误读了“调整大小”地图部分。很高兴它成功了 – kjy112 2011-03-20 00:16:15