0

我正在尝试将我的谷歌地图缩放到我将标记推到地图上的地方....但是如果我增加地图中的缩放值,它会缩放到地图的中心点,而不是放置标记的地方......所以你能告诉我......我哪里错了......!我尝试了很多方法,比如 map.setzoom 和所有方法来增加我推标记的地方附近的缩放,但它缩放到中心点......请帮忙!这是javascript:

    function init() {
        var answers = new Array();
        var data = document.getElementById('Hidden1').value;

        var pairs = data.split('@');
        for (var i = 0; i < pairs.length - 1; i++) {
            var pair = pairs[i];
            var pairs1 = pair.split(',');
            answers[i] = pairs1;
        }

        var locations = answers;

        var map = new google.maps.Map(document.getElementById('map'), {
            zoom: 1,
            center: new google.maps.LatLng(12.9715987, 77.5945627),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });

        var infowindow = new google.maps.InfoWindow();

        var marker, i;

        for (i = 0; i < locations.length; i++) {

            marker = new google.maps.Marker({
                position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                map: map
            });

            google.maps.event.addListener(marker, 'click', (function(marker, i) {
                return function() {
                    infowindow.setContent(locations[i][0]);
                    infowindow.open(map, marker);
                }
            })(marker, i));
        }
        map.setZoom(14);
        document.getElementById('dvloading5').style.display = 'none';
        document.getElementById('map').style.display = 'block';
    }

我在其中显示地图的 div 很小......代码如下:

    <div id="map" style="width: 485px; height: 450px">
    </div>

是因为地图的 div 尺寸小导致缩放不正确吗?或代码问题请告诉我...!提前谢谢你!!

4

1 回答 1

0

您应该使用google.maps.LatLngBounds()来获取功能。

创建一个边界变量-

var bounds = new google.maps.LatLngBounds();

然后在您的循环中(为清楚起见进行了修改)-

for (i = 0; i < locations.length; i++) 
  {
      var lat = parseFloat(locations[i][1]);
      var lng = parseFloat(locations[i][2]);
      var pos = new google.maps.LatLng(lat, lng);
      marker = new google.maps.Marker({position: new google.maps.LatLng(pos),map: map});
      bounds.extend(pos);
   }
 map.fitBounds(bounds);
于 2012-11-28T07:36:29.113 回答