为什么谷歌地图在被要求时不会改变变焦?

时间:2011-03-08 19:14:21

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

我在这里得到了一些代码:

function ShowSelection(addr){
    var latLngBounds;

    geocoder.geocode({ "address": addr }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {

            if (selectionArea === undefined || selectionArea === null) {
                selectionArea = new google.maps.Rectangle({
                    map: map
                });
            }

            latLngBounds = results[0].geometry.bounds;
            selectionArea.setBounds(latLngBounds);

            map.panTo(latLngBounds.getCenter());
            map.setZoom(12);
        }
        else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
}

我的问题是,当我调用map.setZoom(12)时,地图只会保持原来相同的缩放级别。

我想更好的解决方案是将其设置为缩放级别,以在地图窗口中显示完整的selectionArea。

所以我想这是一个双重问题:

  1. 调用setZoom()时如何更改缩放级别?
  2. 如何设置缩放级别,以便地图上绘制的矩形完全适合地图div的边界? (我正在寻找的所需效果是让地图平移到selectionArea的中心点,并使地图的边界大于选择区域的边界,即整个selectionArea在地图上是可见的w / o滚动。

1 个答案:

答案 0 :(得分:2)

我不确定我理解你的问题。 您发布的代码对地址进行地理编码,并绘制一个与地图边界大小相同的矩形。 所以......

  

如何更改缩放级别   什么时候调用setZoom()?

好吧......似乎没问题。检查您的地图缩放是否尚未设置为12

  

如何设置缩放级别   在地图上绘制的矩形会   完全符合。的范围   map div?

您可以使用

使地图适合边界
map.fitBounds(latLngBounds);