【问题标题】:select of alternative route reduces zoom选择替代路线会减少缩放
【发布时间】:2012-12-25 23:33:52
【问题描述】:

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

【问题讨论】:

  • code jsfiddle.net/bujar/LaYQJ/10 1.按按钮 2.看地图 3.按路线 4.选择第二条路线 5.按地图缩小
  • 如果您想解析自己的路线 html,可以从路线结果中为点击处理程序创建自己的 panTo 代码。路线上的每个点都在结果中提供了纬度/经度
  • 是的,我知道,但我想知道是否有更简单的方法来做事并保留已经提供的功能。谢谢你的回答。

标签: jquery google-maps-api-3 tabs zooming directions


【解决方案1】:

在地图未显示的情况下更改方向(到备用路线)时,地图大小错误(隐藏时其大小向 API 报告为零)。 "resize" event on the map显示后需要触发。

来自文档:

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

【讨论】:

  • 我认为这种情况为零大小,但我不能确定。我确实触发了调整大小事件(请参阅刷新)。我在触发调整大小时添加了一个警报jsfiddle.net/bujar/LaYQJ。还有什么我遗漏的或者我必须手动完成的吗?
  • 再次非常感谢您。如果我不是太贪心,你能帮助我对我的帖子的第二部分有所了解吗?如果可以,请更新您的帖子以选择它作为答案并关闭主题(或者创建一个新主题更好?)。
  • 我知道从现有格式更改格式的唯一方法是自己构建侧边栏(正如您已经为自己回答的那样)。最好为其他选项或想法创建一个新主题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
相关资源
最近更新 更多