2013-08-26 17 views
6

Önceki soruma takip et Google maps responsive resize Pencereyi yeniden boyutlandırmaya dayalı olarak farklı bir yakınlaştırma seviyesi uygulamak istiyorum, bu nedenle tarayıcı pencereleri "daha az sonra" x yakınlaştırma uygularsa ve "büyükse" "otomatik olarak başka bir zum seviyesini uygulayın.Google maps, farklı boyutlarda yeniden boyutlandırma penceresine göre yeniden boyutlandırır.

pencere boyutlandırma aşağıdaki kod haritasını recentering ait açısından mükemmel çalışıyor, ben buna yeni zum seviyeleri uygulamak gerekir:

var map; 
function initialize() { 
    var mapOptions = { 
    center: new google.maps.LatLng(40.5472,12.282715), 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions); 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
google.maps.event.addDomListener(window, "resize", function() { 
    var center = map.getCenter(); 
    google.maps.event.trigger(map, "resize"); 
    map.setCenter(center); 
    map.setZoom(zoom level needs to be automatically set according to window size); 
}); 
+0

görünür olmasını istediğiniz sınırları belirlemek ve map.setCenter yerine map.fitBounds kullanmak için muhtemelen en basittir. – geocodezip

+0

Haritanın belirli bir nokta grubu içermesi gerekiyor mu? Sağlayabileceğiniz başka detaylar var mı? – rsnickell

+0

harita belirli bir LatLng ile belirli bir alanı içermesi gerekiyor, değerler yukarıdaki kodda sağlanmıştır, işaretler bu alan içinde yer alır –

cevap

4

bir oluşturarak her zaman görünümde olmasını istediğiniz alanı Construct LatLngBounds ve geocodezip tarafından önerilen şekilde map.fitBounds() numaralı telefonu arayın.

+0

Tam haritanın her zaman görüntülenmesini istiyorsanız, LatLangBounds'um ne olurdu? – brandozz

+0

Güney doğu ve kuzey batı köşeleri seçtim ama tarayıcımı yeniden boyutlandırdığım zaman, yakınlaştırma seviyesi koordinatlarımın ötesine koyduğum şeyi gösteriyor. – brandozz

İlgili konular