0

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

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

奇怪的是,尽管正确绘制了图钉(航路点)和路线路径,但地图总是会缩小到最小缩放(整个世界视图),但地图边界并未得到遵守。如果地图可见,则遵循这些路线路径边界并且地图按预期运行。

一个例子在这里:http: //jsfiddle.net/junto/DMR2T/

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

Google Chrome、Safari、Firefox 的最新版本都显示此问题。Internet Explorer 没有。

这是一个错误吗?

4

1 回答 1

3

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

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

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

于 2012-05-03T16:18:47.653 回答