Google enables Location-aware Applications for 3rd Party Developers

Friday, June 6, 2008 | 4:12 PM



At Google we're very excited about the promise of location technology to drive innovation in the mobile industry. We of course use this location technology already in Google Maps for mobile with the My Location feature. However, we wanted 3rd party developers to also have access to the same location technology across multiple platforms. Gears for Windows Mobile and Android already contain location APIs and we expect to see an explosion of mobile applications that use location technology, particularly on the iPhone starting this month.

Some have wondered: How does it work?

Google Maps for mobile version 2.0 launched last November with a new feature called My Location. My Location enables users to pinpoint their approximate location on a map even if their phone doesn't have a GPS chip. My Location is now available in more than 200 countries and across many different platforms, including BlackBerry, Nokia Series 60, Apple iPhone/iPod Touch, Windows Mobile, and many Java phones. Here's a video that explains what it does. Since the launch, we've seen accelerated growth in the adoption of Google Maps for mobile and have received lots of enthusiastic user feedback on My Location.

We're happy to lift the covers and give you a peek into the inner workings of the Google location server, which powers the My Location feature.

Wireless phones can make and receive calls because they are connected over the air to a nearby cell tower. The phone knows the ID of the cell tower that it's currently using. If the phone has GPS, the Maps application on the phone sends the GPS coordinates along with the cell ID to the Google location server. Over millions of such updates, across multiple phones, carriers, and times, the server clusters the GPS updates corresponding to a particular cell ID to find their rough center. So when a phone without GPS needs its own location, the application on the phone queries the Google location server with the cell tower ID to translate that into a geographic location, i.e., lat/long coordinates. Nifty, huh? We think so.


We're working hard to further improve our location platform and making it more widely available. Stay tuned!

18 comments:

Anonymous said...

Sounds like the Steve Jobs presentation this Monday is going to focus a little bit on this My Location feature of yours, doesn't it?

I'm quite interested in seing this feature work in an advertising market. This could be quite a curious thing. I'll be waiting for an S60 application that takes advantage of this in special.

Keep up the great work!

Pete said...

for some reason now with the new mobile maps application on my blackberry, my location no longer works.
But yesterday, before I downloaded and installed the newer application, my location worked!
what gives?

uBAD! said...

when will the mylocation feature be available for Pakistan???

Unknown said...

You can also check OpenCellId ( http://www.opencellid.org ) an OpenSource database of CellID, which use the same principle. Several clients, including 8Motions ( http://www.8motions.com ) use GPS+CellID information and send them to the server to create this database....

DJYano said...

Cool, i hope singapore will be available soon.

Jon said...

I figured you were crowdsourcing. The Video you launched last year was a bit misleading. As an educator in this field, I felt responsible to write about it, which I did here. Thanks for confirming

http://www.maperture.net/maperture/2008/3/24/how-does-googles-mylocation-really-work.html

Brad Neuberg said...

Just a quick note that the Geolocation support in Gears is not released yet.

Best,
Brad Neuberg
Gears

Rainer said...

I've also speculated about the inner workings of your API here:

http://rainersimon.wordpress.com/2007/12/08/google-maps-mobile-my-location/

(Ok. That's self-promotion, but it's not "shameless self-promotion", right? ;-)

But one more request: On-device API support is great. But any plans to offer an HTTP API as well? Post a cell-ID to your servers as HTTP parameter and get back a snippet of XML with lat, lng and error radius?

wiisniper said...

Are there a plans to provide geo location API to Google gadgets developer? And I belive it should be universal API for mobile and desktops. As a developer I'd like to know address, postal/zip code of users.

ed said...

1. Have you correlated cell tower triangulation and bi-angulation (incomplete data) to GPS returns?

2. How detailed is the emperical map to GPS coordinates? (more than just tower resolution)

3. Does the street view camera car send correlated cell tower (and triangulation) data and GPS returns for other networks besides AT&T, like Sprint and T-Mobile?

ed said...

In working on two different applications that will rely on your good work shown here, two questions come to mind:

1) Blue circle to blue dot conversion without GPS: If precise location is ambiguous for some reason, can you return multiple choice dots that the local application can choose from based on historical data i.e. pick the dot closest to last known good location, or pick based on speed and bearing, or pick based on recognized location from routine routes (BTW: this last one is to report progress on known routes).

2) If cell tower ID is enough resolution to do what needs to be done by the application, appreciating battery and processor demands, can you extract cell tower ID from voice and data streams and just tell applications when they change from one tower to the other? This eliminates polling for tower ID every minute when other primary phone uses are active. This makes low res tracking accessible to handset applications with almost no incremental battery life cost.

Thank you again for good and well implemented ideas and well implemented cooperation with carriers.

Iain said...

Aren't there privacy issues here? Not sure Google should be collecting user IP address & current GPS location, without an opt-in requirement.

Unknown said...

This article only describes using My Location with cell-ID. Commenters have mentioned the possiblity of IP tracking for location.

I was recently able to accurately pinpoint my location from an ipod touch, even though this article doesn't mention WiFi locating.

anyone have links to information about how Google is using IP tracking?

-r. miloh alexander
http:www.numbernoun.net/blog

Frank Bulk said...

I had always presumed that Google would be able to semi-automatically correlate cell IDs with the publicly available information hosted by the FCC on tower data, but it appears they're doing it based solely on multiple GPS-contributed data points.

Where I'm living it might be months before there's enough GPS data for Google to provide an accurate idea of location. There was nothing a few months ago, but the location that pops up now is 6 to 7 miles north of the actual cell site. Too bad that there's no feedback mechanism within the user interface. Leveraging the user community is a powerful way to enhance a product.

Frank

directorblue said...

Very cool.

Consider it crowd-sourcing ("Wisdom of crowds") for location.

Unknown said...

Is there an API for XHTML mobile or Palm HB++) API planned? Can we see this platforms, using this technology in the future?

The Jackal said...

I agree with frnkblk--there should be a method to submit feedback on location issues. Google should also cross-reference the cellID with the FCC database.

While my phone is obtaining its GPS fix, the My Location feature pinpoints my location as Sisters, Oregon. I live just a little bit north of that--Anchorage, Alaska, to be exact.

Once the GPS receives its fix, everything's OK. But when I'm using location-aware apps (I have an iPhone), sometimes the apps don't wait long enough before giving theircresults (especially if I'm indoors), and I'll receive restaurant recommendations for a city nearly 2,000 miles from my house--hardly in my neighborhood.

Lars said...

Like with Navizon, Does WAR driving for new wifi access points or cell towers with a proper gps unit do any good? In other words does google maps send back info on new wifi points from a client device?