javascript - keep google maps centered when window resize -


i trying center google maps when window resized. looked around many examples on stackoverflow nothing of seems working me. here's sample code:

google.maps.event.adddomlistener(window, 'resize', function() {   //window resize , position map center   center = map.getcenter();   google.maps.event.trigger(map, 'resize');   map.setcenter(center); }); 

i have markers on map should fit accordingly when map center positioned. missing here ?

when resize window(and map), center of map changes too(also when didn't trigger resize-event).

when call map.setcenter(center) value of center has been updated regarding new size of map.

you must store center of map each time when changes(except when map has been resized), , when map has been resized restore stored value.

possible solution:

  google.maps.event.addlistener(map, 'center_changed', function() {      //a value determine whether map has been resized     var size=[this.getdiv().offsetwidth,this.getdiv().offsetheight].join('x');      //when center has changed, not size of map     if(!this.get('size') || size===this.get('size')){        this.setvalues({size:size,_center:this.getcenter()});              }     //when map has been resized     else{       google.maps.event.addlisteneronce(this,'idle',function(){       this.setvalues({size:size,center:this.get('_center')});});           }   });   //trigger resize-event initialize size , _center-values   google.maps.event.trigger(map,'center_changed',{}); 

demo: http://jsfiddle.net/doktormolle/xce4w/


Comments

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -