【问题标题】:Google maps zoom, need to zoom near marker which is not happening instead its zooming to center point谷歌地图缩放,需要缩放附近没有发生的标记,而是缩放到中心点
【发布时间】:2012-11-28 15:36:29
【问题描述】:

我正在尝试将我的谷歌地图缩放到我将标记推到地图上的地方....但是如果我增加地图中的缩放值,它会缩放到地图的中心点而不是标记已放置......所以你能告诉我......我哪里出错了......!我尝试了很多方法,比如 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 尺寸太小导致缩放不正常?或代码问题请告诉我...!提前谢谢你!

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    您应该使用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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 2016-06-28
      • 1970-01-01
      相关资源
      最近更新 更多