The improved version needs at least two movements to go to the other side of the world, doesn't follow the rotation if the cursor is too fast and worse than all, performs a gamma rotation for each non-equatorial point of the sphere.
Since we have two degrees of freedom on the screen, I expect to use them to drive the two most used rotations, and maybe have another control for the roll. In addition, we are used to have maps with North pointing up (and sometimes pointing South), so the roll is almost never used.
I agree it’s not the most intuitive approach for all situations, particularly when you’re used to a North-South orientation for maps. The rolling is perhaps made more obvious with my use of a graticule. For this reason, I’d be interested in optionally restricting to two degrees of freedom when dragging on the globe, and the third angle could be modified when dragging outside the globe only. So the point being dragged on the globe could still remain under the cursor where possible using this approach.
Interestingly, Google Earth uses the same approach as I do, though perhaps it seems less obvious without a graticule.
I can understand it when you reach the zoom level of a city, at that point you correlate the data on the map with actual visual memories at the street level, where Up does not correspond to North anymore, but instead is related to Forward. Maybe an exponential transition between the two systems as you zoom in?
Interestingly, on a phone it is also trickier because there is not "grab" equivalent and the y axis also makes the page scroll.
Sorry, I don't want to sound overly critic :)
One of the great joys of manipulating a globe like this is being able to rotate it into completely novel views: not just upside down but at totally arbitrary angles.
The improved version makes this very simple.
If you only want to view the world in a conventional (or upside down) way then I agree that the naive version is very easy to use,
I should consider revisiting my project from earlier this year and implementing the described approach with versors from your example to simulate plate movement.
http://mxfh.github.io/d3canvasglobes/
(right now the mouse mapping behaves quite odd with rotated views)
I don't know where I've seen this, but I think dragging an arc drawn outside the object to adjust the roll is the best solution to the problem.
I sometimes accidentally rotate Google Maps on my phone when zooming, and it annoys the hell out of me. I'm sure there might be a use case for orienting the map so north isn't up (for example, if you want to look at a route to a place with the place at the top of the map), but I haven't needed it yet. It's much more likely that if I'm using two fingers to gesture on a map, it's because I want to just zoom in and out, not rotate it.
On Google Maps, try the single-finger double-tap-and-scroll for zoom without panning and rotation. Kinda nifty.
Turntable and Trackball.
fairly intuitive names for the concept, turntable keeps one axis fixed, and lets you rotate on the other two, and trackball behaves, well, like a track ball. Much like this demo.
The turntable is much simpler, but the trackball is much more capable (if a little tricky to use).
If you use it for a bit of time however, you'll find that despite only have two degrees of freedom, you're capable somewhat indirectly controlling the roll of your camera by click and dragging in a circle.
Test it on the globe! Grab a point and move your mouse in a circle, the larger the circle the faster the roll. It's actually pretty intuitive when you get used to it.
Which is why the debate between Turntable and Trackball exists. They both have merit.
Try putting γ=23º in the Euler angles and rotate the earth with λ.
I'm impressed it worked at all on mobile.
To give an example, rotate both the unimproved and improved globes so you're facing Antarctica dead on. Then try dragging left and right. The improved is far more intuitive to me at this point.
http://dalyons.github.io/where-is-dave/index.html?use_cached...
Works much better on chrome than FF unfortunately.
I thought it turned out pretty cool, as a practical example of what you can use this stuff for. It was super fun to build, D3 is pretty awesome.
You can also load your own photos from FB if you want to see your own track, its just static html/js, i dont store anything anywhere.
Let u and v be the unit vectors of the initial and final click location. We want an R s.t. Ru = v. Create an orthonormal basis ON(u) and ON(v) (you can use the QR decomposition for the vector concatenated with I).
R = ON(v) ON(u)^-1 = ON(v) ON(u)^T
Yup. Thanks pjan, you made my day brighter :)
I dont know if the details of map itself are important or not, because I understand it's an exhibition of the interface itself. Just my opinion.
They are in turn derived from Natural Earth data: http://www.naturalearthdata.com/downloads/110m-cultural-vect...
It's jasondavies.com/maps/world-110m.json which is from http://www.naturalearthdata.com/downloads/110m-physical-vect...
Are the globes drawn with perspective?
And can it suffer from gimbal lock?
As for perspective, what do you mean by that? Aren't globes always in perspective?
http://www.ludumdare.com/compo/minild-40/?action=preview&uid...
.. however, some more explanation for how the improved rotation works would have been useful.
The historian Marshall Hodgson referred to the Mercator projection as the "Jim Crow projection." This is why.