2013-08-26 36 views
57

Pencereleri yeniden boyutlandırırken merkezini korurken google haritalarını yanıtlamaya ve yeniden boyutlandırmaya çalışıyorum. Ben gibi ilgili diğer yığın soru okuyun: İkinci yığın soru I got a link which helps me with part of the code denGoogle haritalar duyarlı yeniden boyutlandırma

Responsive Google Map? ve Center Google Maps (V3) on browser resize (responsive)

ama yine de başarısız. Bu pencereyi yeniden boyutlandırmak zaman, haritalar tüm

function initialize() { 
     var mapOptions = { 
     center: new google.maps.LatLng(40.5472,12.282715), 
     zoom: 6, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var 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); 
    }); 

html de boyutlandırmak gelmez, ben kullanıyorum kodudur

<div id="map-canvas"/> 

css

html { height: 100% } 
body { height: 100%; margin: 0; padding: 0 } 
#map-canvas { height: 100% } 
+5

Sorunuz benim yanıtlandı! Teşekkürler! –

+0

@ GuillermoGutiérrez hangisi? – nilon

+0

@nilon Yayınlamamıştım, ancak Google Haritalar'daki haritanın merkezini Javascript API'sı kullanarak nasıl ayarlayacağınız hakkındaydı. –

cevap

100

içine harita değişkeni Taşı Olay dinleyicisinin kullanabileceği bir kapsam. Haritayı, initialize() işlevinizin içinde oluşturuyorsunuz ve bu şekilde oluşturulduğunda başka hiçbir şey kullanamazsınız.

var map; //<-- This is now available to both event listeners and the initialize() function 
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); 
}); 
+0

Parlak, bu mükemmel bir şekilde çalıştı, pencereyi yeniden boyutlandırırken de yakınlaştırmayı değiştirmemizin bir yolu var mı? –

+1

Evet, map.setZoom'u arayabilirsin (4); veya map.setCenter() öğesini çağırdıktan hemen sonra ihtiyacınız olan yakınlaştırma seviyesi. – rsnickell

+0

Evet, sadece denedim ve sorun değil, ama -1 veya +1 elde etmeyi, yani, dinamik olarak yakınlaştırmayı ekleme veya çıkarma hakkında ne düşünüyorsunuz? –

İlgili konular