This year, Santa is totally plugged in.

Wednesday, December 23, 2009

We've made a change to the NORAD Santa Tracker this year. In years past, we've created a .kmz file that users could download to watch the Big Man in Red travel around the globe on Christmas Eve using the Google Earth desktop client. This year, we're not offering a Google Earth client file. Instead, we're using the Google Earth Browser Plug-in, aka the Google Earth API, to embed the NORAD Tracks Santa Google Earth experience - replete with terrain relief, 3D buildings, and tilt-pan-rotate-zoom navigation - into a page on the NORAD Tracks Santa site. To get the Plug-in, visit http://earth.google.com and download Google Earth 5.1 - the Plug-in has been bundled with both the PC and Mac clients since Google Earth 5.1 came out of beta. The Google Earth Plug-In offers a couple of tantalizing advantages over the client-based experience:

  • Users can stay on the site. Because the Google Earth experience is now embedded on a web page within the site, users don't have to leave the site for 3D tracking. So, if they would like to return to the NORAD Tracks Santa Google Map--or any other page--it's just a back-button click away
  • It's "automatic." The NORAD Tracks Santa project is visited by users from all over the world with a wide range of technical skills and connection speeds. Last year, users were prompted to install Google Earth, download the .kmz file, then open the .kmz in Google Earth. For some less-than-technically-savvy users, this 3-part process was confusing and difficult. Using the Plug-in is much easier; if users have the lightweight client (aka, the Plug-in) installed, all they have to do is visit the NORAD Tracks Santa Google Earth page, and they'll see Santa in 3D. If users don't have the lightweight client installed, the Plug-in viewport displays a clear and easy prompt to start the download, after which the 3D tracker activates.
Elsewhere on the technical front, we've ported the 2-D tracking map to the new Maps API v3, our lightweight JavaScript API, and created two custom OverlayView extensions for it. The "cloud overlay" shows Santa spreading his sparkle and snow over his recent stops, and uses the Raphaël SVG/VML graphics Library to create cross-browser compatible blurs and shapes. The "smart infowindows" open in the direction of least resistance (above/below/left/right), to minimize map panning as the user browses around Santa's many stops. Feel free to use these in your own maps.
On December 24th, visit www.noradsanta.org and click on the "Track Santa in Google Earth" link. It's going to be (choose one):
  • Groovy (retros)
  • Wicked cool (east coasters)
  • Off the hook (gen Zs)
  • Plugged-In (developers)
Don't miss it.

Mobile Options, Android, and App Engine: New Articles

Tuesday, December 22, 2009

Labels: , , , , ,

Just in time for your holiday coding enjoyment, we have three new articles to get you started on adding maps to mobile and using App Engine for spatial search.

Overview of Mobile Development Options for the Google Maps API
Putting a map on a phone seems natural these days. This article goes over the options for developing a Google Map for a mobile application.

Loading a Maps API site in a Native Android Application
Google Maps API Version 3 was designed to be used in a mobile environment. If you want to include a V3 page in a native Android application, this is how to get started.

Geospatial Queries with Google App Engine using GeoModel
Many developers are moving their applications to cloud computing. Here's how to get started with geospatial queries building on Google App Engine.

So enjoy your holidays, and I look forward to seeing your apps in January!

The Maps Data API: Bringing Geospatial Search to Google's Cloud

Wednesday, December 16, 2009

Labels: , ,

When we first announced the Google Maps Data API in May, we were excited to provide developers with free scalable hosting of geographic content.  The idea was simple: to create an awesome maps mashup, you focus on creating a great user experience and Google will provide scalable hosting and bandwidth.  Moreover, your data should be accessible from any platform (like desktop, iPhone, or Android) using your language of choice (including JavaScript, Python, Java, or Objective-C).

Today we're launching several exciting new features based on all the great feedback we've gotten from developers.  First, we're adding geospatial and attribute search to your maps.  To see these features in action, play around with this College Finder demo (you can download and modify the source code here).  I created a Google My Map consisting of approximately 3000 U.S. 4-year colleges, and wrote a JavaScript app to search over this map (with no need to run my own server or database!).

Using the new search features, you can easily request "all colleges within 5km of San Francisco" and apply attribute filters like "[Type:public]".  You can also sort the results by proximity to a point (in this case, the center of the map).  The results are updated whenever the map is dragged or zoomed, or when the search criteria change.

In addition to search, many developers have requested the ability to enable API access to a public map without requiring users to be signed into a Google account.  We've also enabled this today: you can indicate (using the API) that you would like a map to be accessible by others via the API.  You can also programmatically control access to the maps you own, by making them public/private or adding specific collaborators.  Our official docs will be updated soon but, in the meantime, check our forum for updates about this.

To get started writing your next awesome geo app, you can download and modify our sample code, or refer to our documentation.  We look forward to seeing all the great collaborative mashups, store locators, and mobile apps you'll come up with.

If you have questions or feedback, or would like to tell us about your new creation, please visit our developer forum, tweet about #mapsdata, or file a feature request.  We have some other great features on the way, so stay tuned and keep mapping!

Posted by Matt Holden, Google Maps Data API Team

Virtual Globes at AGU... webcast!

Tuesday, December 15, 2009

The American Geophysical Union's annual Fall 2009 Meeting is taking place all this week in San Francisco. If you've never been before, it's quite a sight: 15,000 geoscience researchers, students, and educators!

If you're attending, be sure to check out the Virtual Globes sessions, which are in their fourth year. They're a great line-up of oral and poster sessions that illustrate interesting and innovative uses of Google Earth, KML, and other modern mapping tools in the geosciences. The "oral sessions" (i.e. talks) are on Tuesday, while the posters are on Wednesday and Thursday. As was the case in prior years, Virtual Globes "posters" are really large plasma screens running cool science and GIS demos :).

If you're not attending this year, you can still catch some of the talks online. One of the oral sessions is being webcast live! The fun starts at 10:20am Pacific time today (18:20 GMT). We also videotaped a few of the speakers delivering their talks outside of the conference, and will be posting those soon.

Last but certainly not least -- we have a Liquid Galaxy on hand in Google's exhibitor booth at the conference. Come check it out, at booth #839. It's quite an experience.

Twitter as a Location Platform at Google Geo Hackathon

Wednesday, December 09, 2009

A few weeks ago, Twitter launched the Geotagging API -- we really wanted to enable users to not only talk about "What's happening?" but also "What's happening right here?"  For a while now, we've been watching as users have been trying to geo-tag their tweets through a variety of methods, all of which involve a link to a map service embedded in their Tweet.  As a platform, we've tried to make it easier for our users by making location be omnipresent through our platform, and an inherent (but optional) part of a tweet.  We're making the platform be not just about time, but also about place.

I'm really excited to talk about this and other things next Tuesday, December 15th at the Google Geo Hackathon.  I hope to cover our Geotagging and our Trends API, show off some of our other upcoming location based capabilities, and showcase some applications that are currently using them.  Most of all, I'm looking forward to meeting developers from the Google Geo API community and learning how folks are mashing them up with the Twitter API.

Hope to see you all at the Googleplex! RSVP here. Space limited.

Raffi Krikorian, Twitter Platform Team

Getting a Better View with the Maps API v2: Aerial Imagery

Tuesday, December 08, 2009

Back when I was still an intern at Google, I went on a road trip around California with a couple of friends while armed with nothing but a car, a cheap GPS and pure naiveté. Upon arriving at San Diego, we parked in the middle of the city, wandered around, then somehow scored a lift to the harbour in a police car without needing to be arrested first.

However, we promptly became lost when walking back to our car because we couldn't remember which street we'd parked on, and landmarks didn't seem to match up on our GPS. By the time we found the car, the parking meter had expired and we'd received a $50 fine, which you could say was the cost of our 'taxi'.

As I know only too well, reading maps can be tricky when buildings around you look completely different on the map or aren't there at all. Today with the launch of new aerial imagery in the Maps v2 API, the directionally challenged now have a little more help. The imagery is available with or without road overlays on top, and in each of the major compass directions (North, South, East and West), so you can now view the map upside down instead of doing handstands.

Below is a comparison of the existing satellite imagery with the new aerial imagery over the San Diego Pier Cafe, where we ate lunch on that day. Notice how buildings are more recognizable when viewed at an angle as compared to a top-down view:

satellite map aerial map
Satellite Imagery Aerial Imagery

The aerial and satellite imagery are linked to each other, and the hybrid aerial and hybrid satellite imagery are linked to each other as well. This means that a single call to GMap2.enableRotation() will tell your map to automatically switch from satellite imagery to rotatable aerial imagery wherever it is available. The GLargeMapControl3D will also display a compass ring that users can rotate to see the imagery from different directions, like in the screenshot below:

aerial

You can learn more about the API and the map type collections by taking a looking at the concepts, reference and examples. You can also take a look at how Orbitz, Redfin and Trulia have integrated this new imagery by checking out our Google LatLong blog post.

We currently have imagery over San Jose and San Diego, California and will be adding more locations in the coming months. This will help users of our API to see what entire neighbourhoods look like at a quick glance, quickly pick out specific landmarks or simply find their way around. As for me, the next time I go to San Diego I'll be armed with a car, a data plan and a little less naiveté.

Geolocation, Mobile Web Apps, Geo-Autocomplete, Geohashing, and more from GeoMeme

Monday, November 23, 2009

Guest post by Bob Hitching, Director of Technology for Xumii, recently acquired by Myriad (Myriad Group AG), Europe's largest mobile technology company with software in over 2 billion phones.Bob also writes about mobile + geo + social on his blog and tweets as @hitching.

GeoMeme is a pet project of mine. It's a web app, and also a mobile web app for iPhone and Android, that measures real-time local twitter trends to work out what's happening where.

Visitors to GeoMeme choose a location on the map, and two search terms to compare. GeoMeme then measures and compares the number of matching tweets within the bounds of the map. Tweets are located using Twitter's brand new geotagging feature, and public data from a number of mobile twitter apps.

As an example, GeoMeme can work out that 'love' beats 'hate' in New York:

GeoMeme is packed full of geo goodness, and I am excited to share some details on how it all works in the following articles. I hope these are useful to those of you building your own geo apps.

Location-aware mobile web apps using Google Maps v3 + geolocation

This article explains how location-aware mobile web apps such as GeoMeme Mobile are now becoming a viable alternative to native mobile apps for iPhone &/or Android.

Also covered is how to combine various geolocation techniques to work out where on earth a mobile phone is located, and how to dynamically retrieve content local to the user for display on a mobile map.

Sample code is provided in the form of a 'Here I Am' location-aware mobile web app that combines geolocation techniques, and retrieves local photos from Panoramio for sharing on Twitter or Facebook.

Fast map re-location using Google Static Maps v2 + geocoder

As well as offering users the normal pan and zoom controls to move the map around, GeoMeme also adds an innovative geo-autocomplete control which provides a refreshingly quick way for users to re-position the map anywhere on the planet.

This article explains how the geo-autocomplete control uses the geocoder service from Google Maps v3 API to match location names as they are being typed, and then the new Static Maps v2 API to present the results as a menu of map thumbnails to choose from.

Sample code is provided in the form of a jQuery plugin for you to build your own geo-autocomplete controls.

Scalable, fast, accurate geo apps using Google App Engine + geohash + faultline correction

GeoMeme generates a large amount of geo-data, and so arises a need shared by many geo apps: scalable, fast, and accurate spatial queries, to select a subset of geo-data for display as markers on a map.

This article is all about using Google App Engine to host scalable and fast geo apps, and using an optimised version of the geohash algorithm to perform your spatial queries.

There's a fun demo showing the effect of geohash faultlines, and the relative accuracy of spatial queries with or without faultline correction

Sample code is provided as a python module to handle faultline-friendly geo search, if you want to use this technique on your own geo apps.