1

問題が発生しています。私はディーラーの場所の配列を持っています。と呼ばれていlocationsます。各グループの最初の項目は緯度で、各グループの最後の項目は経度です。場所の 1 つにズームインすることを除いて、すべての場所が正しく表示された地図が返されます。それは境界のあるものでなければなりませんが、私にはわかりません。誰か助けてくれませんか?ありがとう。

これが私のコードです:

var map = new google.maps.Map(document.getElementById('map'), {
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });

var marker, i;

if (locations.length > 1) { 
    var bounds = new google.maps.LatLngBounds();
    for (i = 0; i < locations.length; i++) {  
        marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][0], locations[i][1]),
                    map: map
                });
    }

    bounds.extend(marker.getPosition());              

    map.fitBounds(bounds);
4

2 に答える 2

2

bounds.extendforループの中に入れたいと思います。私の見方では、1 つのマーカーの位置しか取得していません。

于 2012-05-31T20:53:35.100 に答える
0

あなたのコードでは、最後のマーカーの位置を取得し、それに合うようにマップに言うようです。あなたはそれを

bounds.extend(marker.getPosition());              

    map.fitBounds(bounds);

すべてのマーカーに合わせたい場合は、

bounds.extend(m[i]);

マーカーの後の for サイクルで。

同様の回答がさらによく説明しています: Google Maps v3 API Extend Bounds. Javascript のハウツー?

于 2012-05-31T20:55:54.477 に答える