0

我正在使用angularjs 的ng-Dialog模块作为车辆行程视图地图。我的trip-map angularjs指令工作正常,地图在完整窗口中加载了fitbounds(不在ng-dialog模型弹出窗口中),但在ng-dialog弹出窗口中不起作用。

在 ng-dialog 中,加载了 googlemap,但地图不在 fitbounds 中。

早些时候我认为问题是由于googe map fitbound不能正常工作,所以我发布了以下问题。你可以在这里找到我努力的更多细节。

谷歌地图fitBounds不起作用


控制器中的 ng-dialog 调用代码:

    ngDialog.open({
       template: 'Views/Main/tripdetail.html',
       className: 'ngdialog-theme-plain',
       controller: 'tripdetailController',
       scope: $scope
    });

地图fitbound代码:

    var marker;
    var tripmap = mapService.getTripMap();
    var bounds = new google.maps.LatLngBounds();
    for (var j = 0; j < trips.length; j++) {
        var ltlng = new google.maps.LatLng(trips[j].lat, trips[j].lng);
        bounds.extend(ltlng);
        //   if (j == 0 || j == trips.length - 1) {
        marker = new google.maps.Marker({
            position: ltlng,
            map: tripmap
        });
        //  }
    }
    $scope.Bounds = bounds;
    tripmap.fitBounds(bounds);

在窗口中它看起来很好:

在此处输入图像描述

在 ng-dialog 模式弹出窗口中,它移动到左上角,如下所示:

在此处输入图像描述

请告诉我解决方案。这将是可观的。

4

1 回答 1

3

这是由于 ngDialog 弹出指令调整了地图的大小。

通过在地图调整大小回调中调用 fitbounds 解决

           $scope.$apply(function () {
                window.setTimeout(function () {
                google.maps.event.trigger(tripmap, 'resize');
                    tripmap.fitBounds(bounds);
                }, 100);
            });

谢谢大家的帮助。

于 2014-12-26T11:46:10.143 回答