Центрирование нескольких маркеров Google API v3 - PullRequest
0 голосов
/ 06 марта 2012

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

Вот мой код:

<script type="text/javascript">
  var infowindow;
  var map;

  function initialize() {
    var myLatlng = new google.maps.LatLng(37.4419, -122.1419);
    var myOptions = {
      zoom: 13,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    downloadUrl("include/moredata.xml", function(data) {
      var markers = data.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markers.length; i++) {
        var latlng = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
        var marker = createMarker(markers[i].getAttribute("name"), latlng);
       }
     });
  }

  function createMarker(name, latlng) {
    var marker = new google.maps.Marker({position: latlng, map: map});
    google.maps.event.addListener(marker, "click", function() {
      if (infowindow) infowindow.close();
      infowindow = new google.maps.InfoWindow({content: name});
      infowindow.open(map, marker);
    });
    return marker;
  }

  function AutoCenter() {
    //  Create a new viewpoint bound
    var bounds = new google.maps.LatLngBounds();
    //  Go through each...
    $.each(markers, function (index, marker) {
    bounds.extend(marker.position);
    });
    //  Fit these bounds to the map
    map.fitBounds(bounds);
    }

</script>

Сначала я подумал, что это потому, что я объявил центр и увеличил масштабмои варианты, но даже после того, как их убрали, моя карта не появилась.Помогите, пожалуйста???Спасибо!

1 Ответ

0 голосов
/ 06 марта 2012

Сначала настройте массив:

var realMarkers = [];

Затем вставьте маркеры в массив:

var marker = createMarker(markers[i].getAttribute("name"), latlng);
realMarkers.push(marker);

Затем выполните цикл realMarkers:

bounds.extend(marker.getPosition());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...