1

我有问题。我有一系列经销商的位置。它被称为locations。每组中的第一项是纬度,每组中的最后一项是经度。我正确地取回了一张包含所有位置的地图,但它放大了其中一个位置。它必须是有界限的东西,但我不确定是什么。有人可以帮忙吗?谢谢。

这是我的代码:

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.extend在 for 循环中。在我看来,它只占据一个标记的位置。

于 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 回答