4

getGMap() は Map オブジェクトのインスタンスを返します。マップの準備ができていない場合、この関数は undefined を返します。マップの準備ができており、getGMap を呼び出すと確実に Google マップが返されることを通知するイベントまたは方法はありますか?

ありがとう

ヤシュ

4

2 に答える 2

12

コントローラー内で使用できます- docsuiGmapIsReadyを参照IsReadyしてください。

uiGmapIsReady戻り値:
- マップがロードされて準備ができたら、プロミス
- マップ情報の配列 (これを呼び出しましたmap_instances)
- 配列の長さは、ページにロードしたマップの数によって異なります
- 配列内の各オブジェクトには、 Google マップ オブジェクト

コントロール オブジェクトで readyを使用getGmap()するには、次のようになります。

HTML

<div ng-app="myApp" ng-controller="myController">
    <ui-gmap-google-map 
        center="map.center" 
        zoom="map.zoom" 
        control="map.control">
    </ui-gmap-google-map>
</div>

コントローラ

myApp.controller('myController', function ($scope, uiGmapIsReady) {

    $scope.map = {
        center : {
            latitude: 37.7749295, 
            longitude: -122.4194155 
        },
        zoom : 14,
        control : {}
    };

    uiGmapIsReady.promise()
    .then(function (map_instances) {
        var map1 = $scope.map.control.getGMap();    // get map object through $scope.map.control getGMap() function
        var map2 = map_instances[0].map;            // get map object through array object returned by uiGmapIsReady promise
    });

});

次の 2 つの方法でマップ オブジェクトにアクセスする方法にも注意
して ください。map_instances[map1Instance, map2Instance, ...]
$scope.map.control.getGMap()$scope

JSFIDDLE

于 2015-02-08T21:10:29.020 に答える
1

tilesloaded イベントをマップ オプションの「events」プロパティに渡すことでアタッチできます。tilesloaded は、タイルがマップに読み込まれた後に発生します (したがって、マップが読み込まれます)。

于 2015-01-08T16:26:17.873 に答える