2-D maps are great, but sometimes it's cool to gaze into the distance. Today we're happy to announce support for perspective in the Maps API for Flash. We've taken the regular API, added pitch and yaw, borrowed the look-around control from Google Earth, and thrown in some nifty camera trajectory support. The opportunity to see the world from a chosen point of view is now in the hands of a user!
Here's a perspective map in action. Sit back and watch or dive in and drag the view. Try holding down the zoom plus (+) or minus (-) buttons to see the new smooth continuous zoom.
Play with demos and the possibilities emerge. Shadows stretch out as the land tilts back. Foreground detail blends with background context. Movement through the world becomes first-person in nature and distant features can rapidly be dragged to the fore. On a regular map a cluster of markers might only confuse. Spin a perspective map and their pattern becomes clear as nearer markers pass in front of their more remote partners.
A key strength of Flash is its ubiquitous nature and we've taken care to develop an API that preserves this advantage. While supporting the latest, greatest Flash players, the API requires only Flash 9. Build a single target and API runtime code matches implementation library to player version. Flash 10 users gain the benefits of the native 3-D graphics support--rendering speed and accuracy--but Flash 9 users won't be left out.
So how do you create a 3-D map? If you've not used the Maps API for Flash before here we've got lots of documentation to help you get up and running. For those who've used the API and have an existing map to hand, three quick changes should suffice:
Map3D.viewMode = View.VIEWMODE_PERSPECTIVE;
addControl(NavigationControl);
While this new functionality is aimed at Flash developers, we also have the Earth plugin and API for those of you working with JavaScript and the JS-based Maps API. For developers using the Maps API for Flash, today's release is just an extension of the existing Flash API; where it makes sense, we have borrowed some learnings from the Earth API (and will continue to do so). From a user's viewpoint, if you've used the Earth plugin or Google Earth, the controls will all be familiar. We've kept the same basic key mappings. Add SHIFT to tilt the map, or CTRL to tilt your view and you're ready to go. More features are hidden just under the surface. Animate a flight from A to B, or apply perspective scaling to your markers. See the new API reference documentation for details.
As always, for those of us working on APIs, the most rewarding aspect is of seeing what developers do with it. Here's what some of our trusted testers have done to date:
Check out some more demos, have a play, make some maps, and let us know what you think!
Posted by Mike Jones, Maps API Team
My name is XIAO Juguang - just call me Juguang. I am a freelance software developer based in Beijing, China. Technically speaking, I'm double sided. On one side, I specialize in knowledge management and business modeling, traditionally using LAMP and now experimenting with offerings like Google App Engine. On the other side, I love visualization in time and space, with charts, trees, graphs, and maps, always using the power of ActionScript/Flex, with the help of open-source projects like Degrafa, Axiis, and Birdeye, and of course, APIs like the Google Maps API for Flash.
A few month ago, Xiaoxi Wu (also from China!) created the MarkerClusterer library for the Google Maps JavaScript API v2 and released it in their open source utility library. This library did automatic clustering of markers placed on a map, so that a large amount of markers wouldn't overcrowd the map or overwhelm the user. This is a great technique for having a better performing map (see this talk for more tips on improving map performance), and the Flash map community immediately rushed to port the code to ActionScript. Developer Sean Toru posted the first port, a version that was only Flash-compatible, Ian Watkins modified that port to use Flex packages, and then I refactored the code to be more ActionScript-friendly and released it into the open-source library. It's great when random strangers can collaborate together on a common code goal. :)
To see how the AS3 MarkerClusterer works, try out the demo (shown above). As you zoom and pan the map, you can witness how the markers are clustered and re-clustered. To learn how to use MarkerClusterer on your own map, view the source code of the demo. To use the library, check out the source code and import it into your project.
The current algorithm is quite simple, just clustering markers in a grid and using static images for the cluster markers. Future extensions could include support for regional clustering or using arbitrary DisplayObjects for the cluster markers. If you're interested in extending the library, join the project.
For those of you who don't currently have the plugin installed, here's what you're missing:
I hope that this new feature gives rise to some great new Moon mashups in the browser!
This Monday, at the Newseum in Washington D.C., we unveiled Moon in Google Earth as the newest 3D-navigable celestial sphere, after Mars and Sky. Users can now explore some fantastic 3D terrain and imagery of the moon's surface, as well as exciting interactive media content about the Apollo missions and more, right in Google Earth!
Today, I'm glad to help commemorate the 40th anniversary of the Apollo 11 landing by announcing support for the moon in the Google Earth API. Just like with Mars, Earth API developers can now choose to show the moon upon instantiating the Google Earth Plugin. Here's a new demo, based on the original Monster Milktruck game, that you can check out to get a glimpse of Moon in the browser:
Lunar Rover
We've also added support for the Moon, Mars, and Sky to the KML embed and tour embed gadgets. Here's a quick demo of the fantastic Apollo 11 tour, created by Sean Askay, embedded in the browser using the touring gadget:
Give us feedback in our Product Forums.