为什么并非所有Google Map Tiles都是在AngularJS应用程序的初始加载时呈现的?

Lar*_*tel 7 google-maps-api-3 angularjs

使用AngularJS构建的Google Map应用程序.

目前部署的沙箱:http://of.xchg.com/

单击地图链接,您将注意到只有一个平铺,如果有任何渲染.

如果您然后调整浏览器窗口的大小,那么其余的地图图块将完全呈现.

这是git项目:https://github.com/LarryEitel/of4

为什么不渲染所有Google地图图块?

有没有办法测试完整的瓷砖渲染?

有没有办法强制重新渲染所有地图图块?

jes*_*sal 13

在地图控制器中调用此函数:

google.maps.event.trigger(map, 'resize');
Run Code Online (Sandbox Code Playgroud)

这应该够了吧.


Lar*_*tel 0

经过多次尝试和错误,我找到了解决方法。只需将 GoogleMap 服务注入到应用程序运行命令中,它就成功呈现了完整的地图。我还必须使默认的“/”路线显示地图页面。我所做的任何涉及尝试从主页(非地图)页面切换到地图页面的其他操作都会导致部分渲染的地图。:(

也许我或某人会提出一个更优雅的解决方案。:)

  // Generated by CoffeeScript 1.6.1
  (function() {
    'use strict';
    angular.module('of4App', []).config(function($routeProvider) {
      return $routeProvider.when('/menu', {
        templateUrl: 'views/menu.html',
        controller: 'MainCtrl'
      }).when('/list', {
        templateUrl: 'views/list.html',
        controller: 'MainCtrl'
      }).when('/map', {
        templateUrl: 'views/map.html',
        controller: 'MapCtrl'
      }).when('/about', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      }).otherwise({
        redirectTo: '/map'
      });
    }).run(function($rootScope, $location, GoogleMap) {
      var rootScope;
      rootScope = $rootScope;
      rootScope.navBarHeight = 40;
      return rootScope.mapShown = function() {
        var mapShown;
        mapShown = $location.path().indexOf('/map') > -1;
        return mapShown;
      };
    });

  }).call(this);
Run Code Online (Sandbox Code Playgroud)