我正在使用google maps api v3和jquery mobile。我有一个页面,其中tab1显示带有路线的地图,tab2显示路线详细信息(setPanel)。当我为响应调用setDirections时,一切都很好。地图居中,缩放也正确。当我导航到详细信息并选择备用路线并按Tab1返回到地图以查看新路线时,缩放关闭。为什么会这样?我可以做些什么让它起作用吗?
答案 0 :(得分:1)
当未显示地图时改变方向(到备用路线)时,它的大小错误(当隐藏时,其大小会报告给API为零)。您需要在显示"resize" event on the map之后触发它。
来自文档:
调整大小 - 当div更改大小时,开发人员应在地图上触发此事件:google.maps.event.trigger(map,'resize')。
更新: 看起来,当隐藏地图并且未设置边界时,directions_changed事件不会触发。显示地图时手动设置边界似乎有效。
function refresh(map) {
google.maps.event.trigger(map, 'resize');
var routeIndex = globVars.directionsDisplay.getRouteIndex();
var routes = globVars.directionsDisplay.getDirections().routes;
globVars.map.fitBounds(routes[routeIndex].bounds);
alert('resize');
}