ngMap中心无法正常工作

时间:2016-02-04 11:47:07

标签: javascript angularjs google-maps ng-map

我在角色中使用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
        }
      }
    };

};

在这种情况下,地图会显示,但地图中心无法正确显示,它会到达右侧。

如果我把下面的代码放在带有虚拟lat的函数之外,那么它工作正常但是我不能在这个函数之外得到动态lat和long值,这就是为什么我需要把它放到这里功能中的代码。

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

请帮我解决。

2 个答案:

答案 0 :(得分:1)

你可以检查一下

center="{{map.center}}"

并在$timeout函数中设置数据。如果您的纬度,经度完美可能是角度消化问题

$timeout(function() {
    $scope.map = {
      center: [latitude, longitude]
    };
});

答案 1 :(得分:0)

实际上你正在覆盖我们的$scope.map

请更新

function mapCenter(latitude, longitude) {

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

还使用dorebuildall="true" propeprty