4

看这个演示

文档中,我看到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 参数不起作用?以及如何使地图适合指定的边界?

4

1 回答 1

2

为什么不使用 center 和 zoom 而不是 bounds ?

无论如何,我正在做一些测试,作为中心,缩放和边界在指令内的一个whatch中,它们是异步加载的,并且由于中心和缩放是必需的,所以边界不受影响。

即使在它没有改变之后设置值(不知道为什么)

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);
于 2015-03-12T18:36:12.527 回答