3

私は、Googleマップの統合のためにAngularでngMapを使用しています。

以下は私のhtmlコードです

<map ng-transclude class='google-map' center="map.center"> 
    <marker position="marker.position" options="marker.options"></marker>
</map>

私のコントローラーコードは

//response get from server side 
var onResponse = function(response){
    $scope.workshop = response;
    mapCenter(response.latitude, response.longitude);

};

function mapCenter(latitude, longitude) {

    $scope.map = {
      center: [latitude, longitude]
    };

    $scope.marker = {
      position: [latitude, longitude],
      options: function(){
        return {
          draggable: true
        }
      }
    };

};

この場合、地図は表示されますが、地図の中心が正しく表示されず右側に寄ってしまいます。

以下のコードをダミーの緯度と経度で関数の外側に配置すると、正常に機能しますが、この関数の外側で動的な緯度と経度の値を取得できないため、このコードを関数に配置する必要があります。

$scope.map = {
          center: [18.9750, 72.8258]
        };

解決のために私を助けてください。

4

2 に答える 2

1

あなたはそれをチェックすることができます

center="{{map.center}}"

データを$timeout関数に設定します。緯度、経度が完璧な場合、角度ダイジェストの問題が発生する可能性があります

$timeout(function() {
    $scope.map = {
      center: [latitude, longitude]
    };
});
于 2016-02-04T11:51:16.063 に答える
0

実際、あなたは私たちの$scope.map.

更新してください

function mapCenter(latitude, longitude) {

                $scope.map.center =[latitude, longitude];
                $scope.marker.position = [latitude, longitude];
            };

dorebuildall="true"プロパティも使用

于 2016-02-04T12:21:03.050 に答える