1

我正在使用 google maps api v3 和 jquery mobile。我有一个页面,其中 tab1 显示带有路线的地图,而 tab2 显示路线详细信息 (setPanel) 。当我为响应调用 setDirections 时,一切正常。地图居中,缩放也正确。当我导航到详细信息并选择替代路线并按 tab1 返回地图以查看新路线时,缩放关闭。为什么会这样?我可以做点什么让它工作吗?

4

1 回答 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');                    
}

jsfiddle

于 2012-12-26T00:18:22.237 回答