0

我一直在寻找一种方法来覆盖谷歌地图的中心纬度并使用 fitBounds() 方法进行缩放。如您所见,我有一组 latlng 坐标,我希望以正确的缩放比例将它们全部放入地图中。

令人讨厌的是,地图在初始化时只使用中心属性的纬度坐标。请帮忙,我看不出我做错了什么。谢谢

    function initialize() {
    var centrelatlng = new google.maps.LatLng(52.474, -1.868);

    var myOptions = {
        zoom:11,
        center: centrelatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var image = 'http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png';

    var hotels = [
        ['ibis Birmingham Airport', 52.452656, -1.730548, 4],
        ['ETAP Birmingham Airport', 52.452527, -1.731644, 3],
        ['ibis Birmingham City Centre', 52.475162, -1.897208, 2]
    ];

    var latLngs = [];
    var hotel;
    for (var i = 0; i < hotels.length; i++) {
        hotel = hotels [i];
        var myLatLng = new google.maps.LatLng(hotel[1], hotel[2]);
        latLngs[i] = myLatLng;
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            icon: image,
            title: hotel[0],
            zIndex: hotel[3]
        });
    }

    var latlngbounds = new google.maps.LatLngBounds();
    latLngs.each(function(n){
        latlngbounds.extend(n);
    });
    map.setCenter(latlngbounds.getCenter());
    map.fitBounds(latlngbounds); 

};

请注意,您必须向下滚动代码查看器才能查看所有代码。

4

1 回答 1

2

不要在 myOptions 中设置中心,同时删除 map.setCenter(latlngbounds.getCenter()); 你应该很高兴。

于 2012-06-05T14:44:41.793 回答