我正在使用 angularjs 和 ngmap ( https://ngmap.github.io )。该地图最初是从视图中隐藏的(使用 ng-show),我希望能够在视图之间切换而不必重新加载整个地图。我还想在地图上显示一个 kml。
仅在显示页面的该部分时才初始化地图(使用延迟初始化)。
它似乎工作正常,除了有时地图无法放大到 kml(使用 fitBounds)。我想我已经确定这是因为包含 div 的高度为零(由于控制器代码在视图实际呈现之前触发),而 fitBounds 需要它。
我试图等到我确定地图是好的并且准备好了。我尝试了以下事件:
- bounds_changed
- 已加载瓷砖
但也不做我想做的事。
目前我正在使用 $timeout,但我不喜欢它,因为我不知道初始化地图需要多长时间,以及我的代码是否会在这段时间内触发。
我的下一个想法是反复检查地图的高度,但我更喜欢更明确的东西。
另一个想法是始终将地图放在背景中,并在该部分可见时使用绝对定位用其他信息覆盖它,但这破坏了我当前的设计。