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 に答える