Subtitles section Play video Print subtitles Alami: Hello, everybody, and welcome to "Secrets and Surprises of the Google Geo APIs". My name is Ossama Alami. I'm a developer advocate on our Geo Developer Relations team, and I'm here today presenting with Aaron Jacobs, who is a software engineer on the Maps API team. So what do I mean when I say "Secrets and Surprises of the Google Geo APIs"? Well, what I want to do-- what we want to do in today's session is give you, firstly, an overview of your options as a developer when you think about Geo, Spatial, and Geospatial APIs at Google, and then go into some specific features of the Maps API, the Earth API, Fusion Tables, our web services, and the Static Maps API, to highlight some features that you may not know about, some features that you may have seen but don't know how to use, and give you an idea of what's new, and some exciting features. So we'll start with the overview. When you think of Geo at Google, people typically think of the Maps API Version 3, or the Maps API, the JavaScript Maps API. Our JavaScript Maps APIs are now active on over 600,000 sites, and it is our primary mapping API, and what you typically think of when you think of Maps at Google as a developer. But we have more than just these, what I'll call user-facing APIs, these mapping APIs. There's the Earth API, which we'll talk about today. This lets you embed Google Earth and a web page and has a JavaScript API you can work with. There's a Maps API for Flash, for any action script developers in the audience. We have a Static Maps API, which we'll also talk about today. And then for Android and IOS devices, we have a native SDK, that you can use for mapping if you're building a native application. But there's more than just these user-facing APIs. There's a suite of developer tools, supporting APIs within Geospatial at Google, that support you as a developer in building these applications. There's our web services, Fusion Tables, both of which we'll talk about, KML, which is an open standard for representing geospatial data, SketchUp, which is a tool for 3D modeling, and you can then take those models and put it on Google Earth, and then Earth and Earth Pro themselves, which are client applications that you can use to visualize your data as well as work with certain data formats. But there's more to it. Google has over 100 different APIs and developer products, and lots of them that you may not immediately think of actually have a notion of place, a notion of location or some geospatial aspect to them. You can get a user's location using the Latitude API, geotag imagery using Panoramio and Picasa, or geotag videos with YouTube API, updates using the Buzz API, and then there's some developer tools, if you are an organization or a developer that has lots of geospatial data, you know, satellite images yourself, you can use Earth Builder and Earth Enterprise to work with and visualize that data, and then tools like Refine and BigQuery, that don't necessarily have a specific geospatial application, sorry, a specific geospatial feature-- but they are tools that you can use to work with geospatial data sets, and then query them, or refine that. So that's sort of a very quick, broad overview of what is available to you as a developer when you think of Geospatial at Google. And we'll go right now into some really exciting features of Maps API Version 3-- again, some features you may not know about and some features that are brand-new. First, I'll start with an overview of the Maps API. We released Maps API Version 3 at last year's I/O, out of labs. Now if you're-- and we deprecated Version 2. Now if you have an active Version 2 site, I don't want you to worry. We have a 3-year deprecation policy. But I hope some of the things you see today encourages you to switch to Version 3, because that's where our active development is, and that's where all of our new features are built upon. The advantage of Version 3 is also that it was built from the ground up to be both a desktop and a mobile web-mapping API. So in addition to support and the mobile browsers for Android and Safari, we also support Blackberry 6 devices, and the Samsung Bada browser, and then the standard desktop browser support as well. You'll notice IE 6 isn't listed here. While we--while the maps-- thank you. While the Maps API will work in IE 6 and will not break, there are certain features that will-- they'll degrade well, but they won't be available to IE 6. But you can rest assured that your map will continue to work and function with Internet Explorer 6. I said "loads of features". Here are just some of them. The things in blue are some of the things that we're going to talk about today. As you can see, there's more to it than just a map and markers. You can do so much more with the Maps API. And the first thing I want to talk about is 45-degree imagery. So this 45-degree imagery, you'll notice I'm looking at an angle, an oblique angle. If I zoom out-- this, by the way, is Google's headquarters in Mountain View, California, which is about 40 miles south of us here-- if I zoom out, I have the standard satellite imagery. Now, I have the smooth transition as a user when I zoom in to switch to a 45-degree imagery, and right now I'm looking north, which we'll call 40-- which we'll call, sorry, zero degrees. I can look east at 90 degrees, 180, 270, and back to zero. And this is really high-resolution imagery, so you can see as I zoom in, you get a lot-- a lot of detail, more than what you would get with just satellite maps. And as a user, I can turn off 45-degree imagery, or go back and add labels. We have an ever-increasing list of cities that's available worldwide. So I was gonna show you Santa Cruz, which is just further south of us here, and we also have Venice, Italy, as well as a large, ever-increasing amount of cities available globally. And so what's the code look like to enable this 45-degree imagery? It's not enabled by default for the Maps API, but it's really, really simple, and this will be a common theme in this presentation. The code to enable these features is actually really, really simple, really easy. Only a couple lines of code, and you can have a world of new possibilities and features in the Maps API. So I simply set the map to-- set, on the map, call "set tilt," pass in "45" for 45 degrees, and this enables 45-degree imagery, so when a user zooms in at an appropriate zoom level, it'll naturally switch to that 45-degree imagery. And then to reset it, if I want to disable satellite imagery, I just call "map.set tilt to 0." And if I want to programmatically set the heading, I just call "map.set heading," and pass in one of those-- one of those degrees. Another feature that is unrelated to 45-degree imagery, but I do like to demo with 45-degree imagery, because it really gives you an idea of the surrounding area, is this overview map control. So this, I can move the box either in here, or as I pan, the overview map control will update, and if I go back to map, it'll switch to map. This gives me a higher perspective, a zoomed out perspective of where I am looking at, so the user can really understand the location, and this will collapse or expand. So the code to this is, again, very, very simple. When I create a map, I pass in "map options." If I want the overview map control, I just pass in "overview map control true," and if I want it open by default,