The Keyhole Markup Language (KML) is an open standard for geographic data presentation. There are over one billion KML files on the web, and yet the vast majority of these files are points on a map.

In High Performance KML for Maps and Earth, Sean Askay and I covered advanced techniques for using KML in Google Earth and the Earth API, as well as introduced other Google platforms that support KML. Our hope is that developers will discover the power of using KML on Google’s platform.

Some of the topics we discussed during our talk:

An Introduction to KML

A quick history and some facts and figures about KML.

Advanced data visualization techniques

We demonstrated two new animation techniques using under-utilized KML tags that make for powerful data visualizations.

First we showed a time-animated thematic map of U.S. Census data using the <gx:altitudeOffset> and <gx:AnimatedUpdate> tags to animate the data using a KML Tour. See this post on more information.

We also demonstrated also a proof of concept for pushing near real-time GPS data updates to Google Earth via a <NetworkLink> that uses <NetworkLinkControl> and <Update> tags to inject new location data into a pre-existing GPS track <gx:MultiTrack>.

You can download this KML file to see these two techniques in action and the other KMLs demonstrated during the talk.

Developer environment

People often ask us about a developer environment for creating KML, so we covered various options. We looked at editors, validators, and libraries, including the open source library PyKML.

KML on other platforms

We showed how to use KML in the Google Maps API and Google Fusion Tables.

So check out the slides and the video and start bringing the power of KML to your presentations.


Maps API applications are accessed on desktop and mobile devices of many shapes and sizes with each application having unique goals for conveying information effectively and for facilitating user interactions.

In this session, we wanted to address some common usability problems that many maps developers run into and to suggest possible solutions that could correct the behaviour. We hoped developers would utilize and build upon these suggestions as they encounter problems in their own projects.

Here is an overview of what was discussed in the talk:

  • Why is usability important and why you should care.
  • What are the differences between mobile and desktop and how do they relate to map applications.
  • Techniques for changing the way data is represented on the map and how can change the experience.
  • Ideas for improving user interaction with the map.
  • Techniques for storing geospatial data.
  • Why incorporating sharing into your application improves usage and user happiness.
  • How changing the appearance of the map can dramatically change the user's understanding and interpretation of the data.

Justin O’Beirne joined us onstage to talk about map styling and how even the most subtle changes to the map can drastically change the user's experience. Below is an example of what can be achieved by using styled maps. The two maps are at the same location and have the same data points but the map on the left has had a custom style applied.

Drag the bar to show more or less of each map

By removing the map labels and decreasing the saturation and lightness we are able to emphasise the importance of the data, make it more visually appealing and build a application that is truly our own. If you would like to play more with map styling check out the styled map wizard.

So watch the video, check out the slides and make your map application user experience rock!

Google Fusion Tables is a modern data management and publishing web application that makes it easy to host, manage, collaborate on, visualize, and publish data tables online. Fusion Tables allows for import of geospatial data to quickly and easily display that data on a Google Map.

The Fusion Tables team has been working hard to enrich what Fusion Tables offers for customization and control of the Google Map visualizations. Two very exciting announcements were made at Google I/O during the Fusion Tables session on Managing and visualizing your geospatial data with Fusion Tables. These announcements include the release of the Info Window and Styling in the Fusion Tables API and Fusion Table Styling in the Google Maps API.

Info Window and Styling API

Previously, map styles and info window templates could only be customized via the Fusion Tables UI. The Info Window and Styling API opens up this functionality to the Fusion Tables API as well. There are many benefits of having API access to map styles and info window templates. For example:
  • This saves time when customizing hundreds of tables.
  • Since the styles and templates are JSON objects, it’s easy to serialize the objects and reuse them later.
  • The styles of public tables can be discovered and used for your own tables.
The Info Window and Styling API is still accepting Trusted Testers! If you’re interested in becoming a Trusted Tester, please join the Fusion Tables API Trusted Tester Google Group.

Fusion Tables Styles in the Google Maps API

Fusion Tables Styles
further increases the possibilities of map customization. Rather than applying a style to a table via the API or UI, styling can now be introduced on the client side using the Google Maps API. There are many benefits to Fusion Tables Styles:
  • It allows for dynamic styling of map features.
  • It’s opens up the possibility for styling tables with multiple attributes.
  • You can give your users the opportunity to decide what range of styles works best for your data.
  • Third party developers can now generate visualizations of your data that differ from your own, which makes sharing your data more powerful and useful.
Fusion Tables styles are available now! Read more about how to use Fusion Tables Styles in the Fusion Tables Layer section of the Google Maps API documentation.

We’re already seeing some really nice uses of Fusion Tables for map customization. Simon Rogers, who joined us for the Fusion Tables I/O session to talk about how the UK Guardian Datablog uses Fusion Tables, has been making great use of Fusion Tables Styles. Here’s one of the Guardian’s latest examples. If you’re interested in creating a map similar to the Guardian’s, we have developed a template for plug-and-play.

What’s new since I/O?

Ever since I/O, we’ve been working to bring you new and interesting additions to the API. For example, this past month, we added IN to the list of supported column filters. We’re working hard to bring you more cool features!

So, please stay tuned for further improvements and additions to the Fusion Tables API family. You can follow @GoogleFT on Twitter, and / or join the discussion on our forum.


The second session of the Geo track at Google I/O was “Secrets of the Surprises of the Google Geo APIs.” Going into I/O we wanted to have a session that could serve as a foundation for later sessions and one where we can feature some of the latest launches leading up to Google I/O. We covered features of the Maps API v3, the Earth API, Fusion Tables, the Maps API Web Services and the Static Maps API in this one session.

What we hope that you take away from this talk is that there is more to the Maps API than just putting markers on a map - we’ve been actively adding many cool features that can really enhance your mapping application and create a better experience for your users.

Here’s a small subset of the features discussed in the talk:

  • With an ever-growing list of cities with 45° imagery available you’re now able to give your users a new perspective of what a place looks like. Don’t forget that there are several easy to enable layers available to quickly add content to your map.
  • Developers have frequently requested the ability for API applications users to drag direction routes around the map in a similar manner to Google Maps, so as you might have guessed, enabling draggable directions in the Maps API is now as simple as a one line code change.
  • A favorite feature of the Maps API is the ability to style the base Google map. With the power to change not only the features shown on the map but the color scheme of those features you have tremendous ability to theme your map to fit a look or brand or remove features that are relevant to your users.
  • Street View in the Maps API v3 is implemented entirely in HTML and Javascript so it's usable on mobile devices with capable browsers without the use of a plugin. This also gives you the power to provide your own custom panoramic imagery and link it to our standard Street View imagery. Don’t let the experience end at the front door - take your users indoors!
  • We’ve added a Distance Matrix service that lets you quickly and easily get travel time and distance between many origins and destinations in one call.
  • In addition to providing driving, walking and bicycling directions the directions service will even optimize the route, determining the best order to visit several destinations.

We talked about a lot more - including AdSense integration, the Places API, useful open source libraries, Fusion Tables and historical imagery, trees and 3D buildings in the Earth API - check out the video or review the slides to learn more!


Google has one of the world’s most comprehensive databases of Places information, including over 50M business listings and points of interest worldwide. The Google Places API lets your applications tap into that database, to find the Places your app needs, so that users can indicate the Place they are at, or discover new Places nearby.

Following the introduction of the Places API at Google I/O last year, we worked with developers in a limited preview to understand what was needed to ensure the Places API is as powerful and easy to use as possible. In the “Connecting People with Places” session at this year’s I/O I was very happy to announce that having implemented the feedback we received during the preview, the API is now accessible to all:

The Places API is provided in two ways, a set of XML and JSON web services, and a set of corresponding classes in the Maps API v3.

The web services are ideal for mobile app developers, and can be queried from the developer’s own infrastructure, or directly from the app running on the smartphone. The Places API Search service focuses on location-based search, delivering up 20 Places in the vicinity of a user’s location. Search results can be filtered by Place name, or by one of over 90 categories, such as ‘restaurant’, ‘night_club’ or ‘spa’. The Places API Autocomplete service focuses on text based search, providing autocompletions of Places near the user as they type.

The Places API Report services also allows apps to submit new Places provided by users, which are instantly added to subsequent search results, and also delete them at a later date if required. Apps that allow users to identify the Place they are in at the time can also pass this “check-in” signal back to the Places API Check-in service which factors this real time popularity signal into the ranking of subsequent searches, so that the Places popular with users of the app are ranked higher in real time.

The Engineering Lead for the Places API, Marcelo Camelo, dove into how to get started with the Places API web services, and the structure of requests and responses in the “Location Based App Development using Google APIs” session:

For web based applications the Places API has also been integrated into the JavaScript Maps API v3. The PlacesService class provides access to Places API Search directly from the web based Maps applications, while the Autocomplete class enables a HTML text field to predict autocompletions of Places as the user types:

To use the Places API classes in your Maps API applications you simply need to request the new places library when you load the API into your web page. To use the web services, you must first create a new project in the Google APIs Console, and then enable the Places API on that project. You can then use the APIs Console key for that Project to access the Places API.

Initially your key will offer courtesy quota of 1,000 requests per day. Once you are ready to launch the next great location based app, simply “Enable billing” on the project. You will be prompted to provide credit card details, in order to verify your identity. Once you have done so, your quota will increase to 100,000 requests per day, but the API will remain free to use. Note that you may be charged if you use the same key for other APIs, which you can avoid by creating a separate project for accessing other APIs.

For more information on how to use the Places API, check out the documentation for the Search and Autocomplete web services and Maps API v3 places library. You can also discuss the API with other developers on the Google Maps API Web Services forum, and request additional features you would like to see the API offer, or report any problems you find, using the Places API section of the Google Maps API Issue Tracker.

Our launch at Google I/O this year was just the beginning of the Google Places API story. We are looking forward to bringing you many more features in the future to help you build more innovative and compelling location based applications. So do get started developing your apps, but keep an eye on this blog for more to come!

[Cross posted from Lat/Long Blog]

If last year’s Google I/O was about the maturation of many of the Geo APIs, this year’s was more about their sophistication, both in the designs discussed and the applications on display. Like the sun standing still at the solstice, let’s take a moment to reflect on recent events and look ahead to the coming season.

Several new features made their debut at I/O this year. The much-anticipated Places API took the stage, as did its companion the Places Autocomplete API. Dynamic Styling was introduced for Fusion Tables layers in the Maps API, allowing layer styling to be defined by the API application via Javascript. Finally, some extremely helpful open source Javascript libraries were introduced to make Maps API development even easier.

Joining us on stage were several developers who came to share their expertise. Justin O'Beirne of 41Latitude talked about map usability and design in the “Designing Maps Applications for Usability” session. The Guardian UK’s Simon Rogers joined us to talk about how the Guardian is using Fusion Tables to visualize the data they collect in “Managing and Visualizing Your Location Based Data.” Yoni Samlan from SCVNGR also came to discuss developing with the Places API in “Location-based App Development.”

In addition to the sessions led by the Geo team, the developer sandbox featured eight Geo API partners who engaged directly with I/O attendees. Joining us in the sandbox were HistoryPin, Icon Fitness, Ubisense, The Wall Street Journal, Footprint Feed, The Bay Citizen, Arc2Earth, and Travel Game. The apps on display ranged from location-based gaming using the Latitude API to tools for citizen journalists to map public data using Fusion Tables. You can learn more about two of our sandbox partners in these video case studies:
  • The Bay Citizen (video) - The Bay Citizen explains the benefits of the Fusion Tables layer with Google Maps API to build infographics for their online newspaper. The Bike Accident Tracker visualizes the prevalence of bike accidents across San Francisco.
  • Historypin (video) - HistoryPin lets users upload historical photos, geotag them on a Google Maps, and overlay the old imagery on top of new Street View imagery, enabling users to see what their cities looked like at different points in time.

Geo APIs Summer Learning Series (apologies to the Southern Hemisphere)

But at the heart of Google I/O are the sessions themselves. This year, speakers from the Maps, Earth, and Fusion Tables teams covered a wide range of topics, from ensuring high performance and usability across all browsers to visualizing huge data sets with Fusion Tables. The amount of material covered was enormous...but we want to expand upon it.

To that end, we’re pleased to announce the "Geo APIs Summer Learning Series” on the Geo Developers Blog. Over the coming weeks, each talk will be getting its own blog post from the session speaker, pulling in what was discussed at I/O and then digging deeper into the technical content. Here is how the series will unfold:

Week of July 6th
Connecting People and Places
Location Based App Development using Google APIs
Secrets and Surprises of the Google Geo APIs

Week of July 11th
Managing and visualizing your location based data with Fusion Tables
Designing Maps Applications for Usability on Mobile and Desktop

Week of July 18th
High Performance KML for Maps and Earth
Speedy Maps

Week of July 25th
Map your business, inside and out
GIS with Google Earth and Google Maps

If you’d like a head start, videos of all the I/O sessions are linked above. Be sure to visit the Geo Developers Blog throughout July for even more great content from the Maps, Earth, and Fusion Tables teams.