The same thing here. What I noticed is that v3 fires a lot of events when panning the map, and the browser tends to suffocate (especially FF). I say this because I also used the Bing Maps API and the number of events per second for viewchange (the equivalent for center_changed on Google) is much less. They also provide the addThrottledHandler() method, with which you can reduce the number of events generated.
From what I can tell, Google Maps seems to center_changed one center_changed event for each mousemove event and before updating the map. Thus, you get a lot of generated events, but none of them are replicated on the screen; browser chokes on the map view screen, or it may be that the card is waiting until there are no changes, and only after that it will update the view.
Edit: if we do not allow some of the mousemove events mousemove reach Google Maps, the browser will not suppress the mousemove events and all other events that Google Maps emits from this event, for example center_changed , and the map will move smoothly.
To do this, add an event listener to the div #map (we can also add it to the body tag). We are adding an event for the capture phase. When the mouse moves around the screen, the body tag first receives the event, then our #map div, and then the Google Maps elements (div, tiles). This is the capture phase. This is followed by a phase of bubbles, in which the event returns from Google Map elements to our #map div, and then to the body tag. Typically, event handlers are registered for the bubbling phase, so if we register a handler for the capture phase, we can cancel the event, and therefore there will be no bubbling phase for this event. It also means that Google Maps will not receive the event.
You can increase the period and space parameters to kill more events. Killing too many events means that the card will begin to move from one position to another. Killing too little means that all events have reached Google Maps, and the browser will strangle the newly created events from Google Maps, and therefore the map will move from one position to another. Some middle ground works best.
Now, after all this, Google Maps will not be as smooth as Bing Maps. This is because Bing cards use inertia: when you move the card violently, the card will slowly follow the mouse, and then faster and faster. It really creates a very smooth panorama.
An interesting fact that I discovered is that Google Chrome and Opera / Chrommium will generate about one mousemove event per second, even if the mouse does not move! This code will also kill these events (because distance is zero for these events).
http://jsfiddle.net/uNm57/ (check the js console in Firefox, you will see some stopped events and one resolved event)
<html> <head> <style type='text/css'> #map { position: absolute; width: 100%; height: 100%; margin: 20px; } </style> <script type='text/javascript'> var last = {time : new Date(), </script> </head> <body onload = "init_map()"> <div id="map"></div> </body> </html>