The 4.29 implementation of MapView.goTo has changed in an undocumented way that produces different results than 4.28 and prior, particularly in regards to rotation. Our framework allows the user to change the map rotation via various means, and we use goTo in order to animate the change in rotation, rather than setting the rotation property directly (which causes an instant change).
In code, it looks like this:
view.goTo({rotation:rotation});
When doing this in 4.28 and prior, the map scale was preserved, but not the extent. Starting in 4.29, the extent is preserved, but not the scale. In order to visualize this, see the images below. The first one is the starting state, where rotation is zero (i.e. North is "up"):
Now, let's say the user wants to rotate the map 90 degrees counter-clockwise so that East is "up". (In the code, we'd set the rotation value to 270.) Here's what it looks like in 4.28:
We see the scale has stayed the same, which is the expected behavior. However, here's what it looks like in 4.29:
We see that the map has zoomed out one level in this case. Were my browser maximized at the time, it would've zoomed out two levels instead. If the user were to repeat this process, the map would continue to zoom out each time.
Fortunately, this is fairly easy to work around by adding the "center" and "scale" properties in the call to goTo:
view.goTo({
rotation: rotation,
center: view.center.clone(),
scale: view.scale
});
On a side note, simply setting the rotation property directly continues to work as before, where scale is preserved.