4

グーグルマップのネイティブAPIにcheckresize()メソッドがあることを確認したのですが、gmaps.jsのrefresh関数ではうまくいかないようです。

AngularJS と gMaps.js を使用して同様の問題を抱えている人はいますか? どうやって解決するのですか?

リサイズ前

ウィンドウのサイズを変更すると、マップが再び表示されます。だから、gMap.jsの初期化時にサイズ変更をチェックする方法はあるのでしょうか?

リサイズ後

4

4 に答える 4

0

サイズを変更せずにマップが正常にレンダリングされました。

サイズを変更すると適切なマップが得られるのはなぜですか?

ブラウザがビューを再度描画するためです。

修正方法は?

最近トリガーされたパネルでマップの適切なレイアウトを取得するには、パネルがロードされた後にマップをペイントする必要があります。これは、以下で説明する (setTimeout) コードによって実現できます。コードの目的は、60 ミリ秒後にマップのサイズ変更イベントをトリガーすることです。

setTimeout(function () {
        uiGmapIsReady.promise().then(function (maps) {
            google.maps.event.trigger(maps[0].map, 'resize');
            lat = -37;
            lon = 144;
            maps[0].map.panTo(new google.maps.LatLng(lat,lon));
            var marker = {
                id: Date.now(),
                coords: {
                    latitude: lat,
                    longitude: lon
                }
            };
            $scope.map.markers = [];
            $scope.map.markers.push(marker);
            console.log($scope.map.markers);
        });
    }, 60);
于 2016-02-05T11:14:10.640 に答える
0

コントローラーで次のコードを使用して、マップのサイズを変更してみてください。

        NgMap.getMap().then(function(map){
            google.maps.event.addListener(map, "idle", function(){
                google.maps.event.trigger(map, 'resize'); 
            });
        });
于 2016-09-05T07:32:02.680 に答える