`angular-google-map`中的`bounds`参数不起作用?

时间:2015-01-20 10:18:53

标签: google-maps-api-3 angular-ui angular-google-maps

请参阅此DEMO

document中,我看到bounds参数的说明是:

  

使地图适合指定的范围。表达式必须解析为   具有东北和西南属性的物体。每一个   属性必须具有纬度和经度属性

我在范围内设置界限:

$scope.bd = {
  northeast: {
    latitude: 51.219053,
    longitude: 4.404418
  },
  southwest: {
    latitude: -51.219053,
    longitude: -4.404418
  }
}

在这样的指令中使用它:

<ui-gmap-google-map bounds="bd" center="map.center" zoom="map.zoom" draggable="true" options="options"></ui-gmap-google-map>

但似乎没有效果..地图不适合我指定的界限。这是否意味着bounds参数不起作用?以及如何使地图适合指定的边界?

1 个答案:

答案 0 :(得分:2)

为什么不使用居中和缩放而不是边界?

无论如何,我正在进行一些测试,作为中心,缩放和边界位于指令内的任何内容中,这些都是异步加载的,并且由于需要中心和缩放,因此边界不会被激活。

甚至在不改变后设置值(不知道为什么)

http://plnkr.co/edit/YdyYIiVVgApA2tpm11Xn?p=preview

setTimeout(function(){
  var map = $scope.instance.getGMap();
  console.log(map);
  console.log(map.getBounds());



$scope.bd = {
  northeast: {
    latitude: 51.219053,
    longitude: 4.404418
  },
  southwest: {
    latitude: -51.219053,
    longitude: -4.404418
  }
}

                    ne = new google.maps.LatLng($scope.bd.northeast.latitude, $scope.bd.northeast.longitude);
            sw = new google.maps.LatLng($scope.bd.southwest.latitude, $scope.bd.southwest.longitude);
            bounds = new google.maps.LatLngBounds(sw, ne);
map.fitBounds(bounds);



}, 2000);