0

下面是显示带有多个标记的谷歌地图的代码。标记数据来自数据库,因此它可以包含 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>
4

1 回答 1

1

map.fitBounds(bounds)仅在有超过 1 个标记时调用

于 2013-04-01T09:07:12.223 回答