0

私は、Googleマップの中央の緯度を上書きし、fitBounds()メソッドを使用してズームする方法を探していました。ご覧のとおり、正しいズームでマップ内にすべて収まるように、latlng座標の配列があります。

厄介なことに、マップは、マップが初期化されたときに、center属性の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 に答える