多个标记映射具有单个标记的放大问题

时间:2013-04-01 07:26:32

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

下面是显示带有多个标记的Google地图的代码。标记数据来自DB,因此它可以包含1个位置或多个位置 对于多个标记,地图居中并自动缩放。问题是如果只有1个标记,则地图会放大到最大级别。有人可以指导我如何修复单个标记的缩放。

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">

var markers = <?php echo $marker;?>;

$(document).ready(function() {
    // Handler for .ready() called.

    initializeMaps();
});

function initializeMaps() {
    var myOptions = {
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapTypeControl: true,
        zoom: 6
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
    var infowindow = new google.maps.InfoWindow(); 
    var marker, i;
    var bounds = new google.maps.LatLngBounds();

    for (i = 0; i < markers.length; i++) { 
        var pos = new google.maps.LatLng(markers[i][1], markers[i][2]);
        map.setCenter(pos);
        if(i==0){
            map.setZoom(5);
        }

        bounds.extend(pos);
        marker = new google.maps.Marker({
            position: pos,
            map: map
        });

        google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {

                infowindow.setContent(markers[i][0]);
                infowindow.open(map, marker);
                //alert('asdfsdfdsaf');

            }
        })(marker, i));
    }
    map.fitBounds(bounds);
}
</script>


<div id="map_canvas" style="width:100%; height:400px"></div>

1 个答案:

答案 0 :(得分:1)

仅当有超过1个标记

时才调用map.fitBounds(bounds)