【问题标题】:Multiple markers map having zoom in issue for single marker多个标记地图具有单个标记的放大问题
【发布时间】:2013-04-01 07:26:32
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 2021-12-19
      • 2011-11-16
      • 1970-01-01
      • 2013-07-20
      相关资源
      最近更新 更多