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',{});
Comments
Post a Comment