Google Maps V3 Проблема с несколькими маркерами по центру и автоматическим увеличением - PullRequest
2 голосов
/ 16 октября 2011

Мне нужно знать, как центрировать все маркеры и автоматически масштабировать карту, чтобы разместить их все на моей следующей карте. Я ломаю голову от нескольких дней, чтобы решить это, Пожалуйста, помогите мне.

Мои коды

<script type="text/javascript">  
  var map;
  var address = new Array();
  //we can also create following array with a for loop
  address[0] = '798 9th Ave, New York, NY';
  address[1] = '42 E 29th St, New York, NY';
  address[2] = '56 W 25th St, New York, NY';
  address[3] = '26 W 21th St, New York, NY';

  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {zoom: 15, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP}
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);    

    for (var i=0; i<=address.length; i++) {     
        geocoder.geocode({'address': address[i]}, function(results, status) {
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({map: map, position: results[0].geometry.location});      
        });
    }   
  }  
</script>

1 Ответ

6 голосов
/ 22 ноября 2011
<script type="text/javascript">  
  var map;
  var address = new Array();
  //we can also create following array with a for loop
  address[0] = '798 9th Ave, New York, NY';
  address[1] = '42 E 29th St, New York, NY';
  address[2] = '56 W 25th St, New York, NY';
  address[3] = '26 W 21th St, New York, NY';

  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {zoom: 15, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP}
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    //Mod        
    var bounds = new google.maps.LatLngBounds();

    for (var i=0; i<=address.length; i++) {     
        geocoder.geocode({'address': address[i]}, function(results, status) {
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({map: map, position: results[0].geometry.location});  
            //Mod
            bounds.extend(marker.getPosition());
        });
    } 
    //Mod
    map.fitBounds(bounds);
  }  
</script>
...