Такая задача: нужно сделать автомасштабирование для гуглкарты, с множеством маркеров, таким образом, чтобы отображались ВСЕ маркеры на карте.
Карта выводится стандартными методами API v3.
Нашел вот такой вариант:
// Create a LatLngBounds object
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < myPositions.lenght; i++) {
// Insert code to add marker to map here
// Extend the LatLngBound object
bounds.extend(myPositions[i]);
}
map.fitBounds(bounds);
где myPositions - массив, содержащий LatLng объекты. Но никак не могу реализовать этот вариант (если он вообще рабочий).
Мой код:
<script>
function initialize() {
var Latlng = new google.maps.LatLng(56.81520299171724, 35.86254508842774);
var myOptions = {
zoom: 8,
center: Latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Далее идет php-код, который в цикле выводит маркеры
//запрос к БД, обработка результата, цикл for($i=0; $i<$num; $i++){,
//echo"
var myLatlng$i = new google.maps.LatLng($lat, $lng);
var marker$i = new google.maps.Marker({
position: myLatlng$i,
map: map
});
var contentString$i = '<div id='content'>$address</div>';
var infowindow$i = new google.maps.InfoWindow({
content: contentString$i
});
google.maps.event.addListener(marker$i, 'click', function() {
infowindow$i.open(map,marker$i);
});
//";}
}
</script>