Bing地图Ajax v7方向模块在隐藏地图图层时错误地设置边界

时间:2012-05-03 12:46:14

标签: bing-maps

我有一个相对简单的网络应用程序,允许用户输入两个航路点(从和到达位置),然后单击按钮以获取路线行程和地图上绘制路线路径的地图。

应用程序的布局使得表格,行程和地图可以根据标签选择显示和隐藏在单独的“标签”和图层中。

奇怪的是,虽然正确地绘制了图钉(航路点)和路径路径,但地图边界始终会被缩放到最小缩放(整个世界视图),但是地图边界没有得到尊重。如果地图是可见的,那么这些路径路径边界就会受到尊重,并且地图会按预期运行。

这方面的一个例子是:http://jsfiddle.net/junto/DMR2T/

当地图可见时,点击“获取路线”,地图将缩放到正确的边界。然后切换地图并再次点击“获取路线”。将地图切换回可见。你会看到地图的缩放级别和界限不正确。

最新版的谷歌浏览器,Safari,Firefox都显示此问题。 Internet Explorer没有。

这是一个错误吗?

1 个答案:

答案 0 :(得分:3)

我的猜测是,为了正确计算缩放和边界,地图需要知道它的显示尺寸。为了使地图知道,它需要是可见的。因此,解决方法是将地图移出屏幕而不是隐藏它。

请在此处查看我的更新示例:http://jsfiddle.net/ZWzjC/

在我的例子中,我只是设置一个负的左边距,我确信有更聪明的方法可以在屏幕上移动某些内容,同时保持其可见性。我尝试使用visibility:hidden但似乎没有正确隐藏地图。 display:none将无法工作,因为这会导致地图有0个维度,这就是.toggle()可能在内部使用的内容。