我正在使用 google maps api v3 和 jquery mobile。我有一个页面,其中 tab1 显示带有路线的地图,而 tab2 显示路线详细信息 (setPanel) 。当我为响应调用 setDirections 时,一切正常。地图居中,缩放也正确。当我导航到详细信息并选择替代路线并按 tab1 返回地图以查看新路线时,缩放关闭。为什么会这样?我可以做点什么让它工作吗?
问问题
235 次
1 回答
1
如果在地图未显示的情况下更改方向(到备用路线),则地图大小错误(隐藏时其大小向 API 报告为零)。您需要在地图显示后触发“调整大小”事件。
从文档中:
resize - 当 div 更改大小时,开发人员应在地图上触发此事件:google.maps.event.trigger(map, 'resize')。
更新:当地图被隐藏且未设置边界时,似乎没有触发方向更改事件。显示地图时手动设置边界似乎有效。
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');
}
于 2012-12-26T00:18:22.237 回答