angularjs - Angular 中的谷歌地图无法正确更新 map

标签 angularjs google-maps angularjs-google-maps

我正在使用 ng-map 谷歌地图 Angular 库,当我在浏览器中重新加载页面时, map 不更新时遇到问题。我还注意到浏览器要求共享我当前的位置,我是否同意共享位置并不重要,如果我下次访问同一页面, map 会正确更新(无需完全重新加载页面)

 <div class="col-xs-10" ng-show="hasMap == true">
     <map zoom="13" center="{{ location }}"> 
       <marker position="{{ location }}" animation="DROP" icon="blue_marker.png">
       </marker>
    </map>
 </div>

enter image description here

最佳答案

我刚刚也遇到了这个问题。我相信这是由于在 div 以最终大小渲染之前加载了 map 图 block 。

在我的特定情况下,根据 Controller 中设置的变量值向 map 添加 ng-if 解决了问题。例如,尝试添加 ng-if="readyForMap":

  <div class="col-xs-10" ng-show="hasMap == true">
     <map ng-if="readyForMap" zoom="13" center="{{ location }}"> 
       <marker position="{{ location }}" animation="DROP" icon="blue_marker.png">
       </marker>
    </map>
  </div>

然后在 Controller 中将readyForMap的值设置为true:

$scope.readyForMap = true;

起初我将其设置为 true 并设置了超时,但这似乎是不必要的。

我不是 Angular 和 Google map 渲染顺序的专家,所以我不能 100% 确定为什么会这样。然而,这似乎会延迟渲染 map 足够长的时间,以使所有内容都处于正确的位置和大小。

关于angularjs - Angular 中的谷歌地图无法正确更新 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660396/

相关文章:

AngularJS自定义指令ng-repeat,无法调用null的方法 'insertBefore'

javascript - 在加载指令模板之前指令的范围未初始化,导致无法加载 Google map

javascript - AngularJS - 分页不呈现在 $scope.Watch 变化(包括 CodePen)

angularjs - Angular-nvd3-directives 根据图表的宽度调整图表的高度

javascript - 如何使用 Jasmine 为 Angular.js 的服务和 Controller 创建测试?

javascript - 如何在谷歌地图中添加我们自己的div而不是信息窗口?

css - 根据ng-repeat中的动态数据为div添加颜色

javascript - 谷歌地图(mapTypeControlOptions)不工作

web-applications - 如何将 Google map 集成到 Web 应用程序中?

angularjs - ng-map:设置缩放级别时无法读取未定义的属性 'apply'