EXIF marks the spot: a guide to geotagging pictures

Geotagging pictures allows you to more easily search your photos based on where you’ve been. In addition to online tools such as flickr and Picasa, desktop apps like iPhoto will take advantage of geotags. (Facebook is a notable exception; it currently doesn’t use geotags.)

You can also create visualizations of your travels like this:

A map of my favorite pictures on flickr.
A map of my favorite pictures on flickr.

Digital photo files contain EXIF headers that store information about the picture. The information that most people are familiar with is the time and date. Each picture can contain hundreds of fields that include minutiae about the cameras settings, including aperture, shutter speed, program modes, etc. Geotags store latitude, longitude and elevation. You can see a sample of EXIF data on flickr. (The geotags are toward the bottom of the page.)

Unfortunately, the actual process of geotagging is still cumbersome. It’s a lot easier than it used to be, but shy of what it should be to make it mainstream.

Here are a few options for geotagging your pictures:

A dedicated GPS that can record GPX tracklogs

A hiking GPS can record your every move. As you walk, hike or run, the GPS unit logs your current location. (As frequently as once per second.) These are recorded on a memory card in a .gpx file. When you return to your computer, you can pull that file and then the photos from your camera’s memory card. Specialized software (such as GeoSetter) then synchronizes the timestamps of the photos with the data from the GPX tracklog and writes the location information into the file.

Don’t worry if the timestamps are off. GeoSetter offers numerous ways to adjust the timestamps so that the time recorded in your pictures lines up with the time in the location data. (To make this easier, I recommend taking a picture of the time display on your GPS at the beginning and end of your trip.)

I’ve used a Garmin eTrex Vista Cx. Any GPS that can write GPX files to a memory card will do the trick.

Advantages: Works really well when outdoors. Precise location, due to GPS accuracy and frequency of updates. The GPS also provides valuable information when you are hiking.

Disadvantages: Additional cost for the GPS unit. Because you aren’t looking at the GPS unit when taking pictures, you may miss errors such as being out of coverage, dead batteries or a full memory card. It’s another thing to carry. Applying the coordinates is a multi-step process. If you go to a distant location, the GPS can take up to 20 minutes to get an initial fix. It may be difficult to get a fix in densely packed urban areas. (In any case, when you head indoors, you’ll have to rely on the last reading.)

Using an Android or iPhone app to record GPX tracklogs

This works pretty much the same as having a dedicated GPS, except that it relies on your cell phone to track your position. The biggest downside is that it will chew through your phone’s battery very quickly. I use Motion-X GPS on the iPhone and My Tracks on Android.

Advantages: Works really well whether indoors or outdoors. Precise location, due to GPS accuracy and frequency of updates. The GPS also provides valuable information when you are hiking. No additional cost. Because the phone can approximate your location in other ways, the time to a GPS fix is much faster.

Disadvantages: Because you aren’t looking at the phone when when taking pictures, you may miss errors such as being out of coverage, dead batteries or a full memory card. Multi-step process. The GPS app will chew through your phone’s battery very quickly.

A geotagging digital camera

Specialized digital cameras can automatically geotag photos. I have a Panasonic DMC-ZS7. It will automatically write the current location into the data file when you take a picture. No lining up separate files or manually geotagging pictures. The Panasonic has a built-in landmarks database. Standing in front of the Statue of Liberty? The screen will show “Statue of Liberty”. In playback mode, the camera will let you browse pictures by location.

Incredible? Yes. Too good to be true? Sadly, also yes. When it works, it’s like magic. When it doesn’t… it just adds incorrect data to the picture.

There are two big problems with Panasonic’s implementation: it takes way too long to get a fix and it doesn’t update when the camera takes a picture. Often when I’ve arrived in a new location, the camera is still showing the old location hours later. The instructions claim that the camera updates location even when it’s off; I haven’t found that to be true.  Even at its best, the location only updates every five minutes. Undoubtedly, the camera’s designers faced challenges trading off the accuracy of the GPS location against battery life. The balance they struck made the GPS feature largely useless.

Advantages: Simplicity. Works OK when outdoors. Because the location is shown on screen, you can determine whether it’s correct and that there are no other issues.

Disadvantages: Location information is often wrong. Very long time to first fix. The GPS uses the camera’s battery. (I didn’t find this to be a huge issue, but you may want to carry a spare battery.) Despite the fact that the camera knows the nearby landmark, it doesn’t write it into the EXIF data in a way flickr and other tools can read. Poor indoor coverage. Additional cost when compared with cameras without GPS capability.

Eye-Fi memory card

Eye-Fi sells a line of memory cards that will geotag locations. The primary purpose of the cards is to automatically upload your pictures to the Internet. But they’ve expanded the capabilities to also geotag the pictures.

Here is how Eye-Fi works: when you take pictures, nearby WiFi networks are recorded. During the upload process, those network locations are used to compute a location using Skyhook’s database of WiFi locations.

Advantages: Simplicity. Works well indoors, especially dense urban areas in the United States.

Disadvantages: The Eye-Fi cards cost substantially more than comparable SD cards (sometimes 10x). It won’t work when you’re in an area without WiFi signals, which rules out EyeFi for geotagging many hikes. The Eye-Fi card’s WiFi capabilities will drain your camera’s battery faster. The locations are added after the fact, so you won’t be aware of any problems when shooting. Geotagging relies on Skyhook’s database of WiFi locations, which can be sparse in foreign locations.

Manually geotagging pictures

For a while, this was the only option. Take pictures that you’ve uploaded and drag them onto a map. This can be as accurate or as inaccurate as you want it to be.

You can take all of your pictures of Venice and drop them onto the city of Venice. Or you can zoom in to just the right piazza and repeat the process for each picture. I once looked into the background of an old picture, found a business name there and did a Google Maps search to put it in the right place. It can be tedious, fun or both. Flickr and Picasa both support manual geotagging.

Advantages: Doesn’t cost anything other than your time. You have precise control over where each picture is placed.

Disadvantages: It can be extremely tedious. Lining up pictures taken outdoors (such as while skiing or hiking) can be difficult.

Using your cellphone’s camera

This is likely the way that most people get into geotagging. If you have an Android phone or iPhone, your camera can do all of the work for you. Based on the same services used for maps and other location services, the phone will write the picture’s coordinates straight into the file. You can also verify that the location is correct by launching a maps app before taking the picture.

It’s so easy that many privacy advocates worry that people are unintentionally revealing their locations when uploading pictures.

Advantages: Simplicity. Can verify information on screen. No additional cost.

Disadvantages: As good as they are, the cameras on phones aren’t as good as regular cameras. This is especially true for pictures needing zoom or taken in low light.

The best solution would be if the camera manufacturers would work with the phone manufacturers to just read the current GPS data when the shutter is pressed. I’d bet that the iPhone gets a microSD card slot before that happens.

Google Hotpot a strong competitor to Yelp

Part 1: Local search is starting to get more social
Part 2: How the battle for local search will be won
Part 3: Google Hotpot a strong competitor to Yelp
Part 4: Statistics on business and consumer engagement in local search
Part 5: Foursquare 3.0 takes mobile ball to a whole new level

Google’s Hotpot is a head on challenge to Yelp, the long-standing leader in gathering local reviews in the U.S. Although Google has been soliciting local reviews for years, Hotpot is the biggest effort by Google to gather local reviews. Google is accompanying the new product with a large marketing push in the Portland area.

Ratings and reviews

Google’s initial goal seems to be to get as many ratings as possible. To that end, it has made giving your opinion very easy. While Yelp encourages long-form reviews with a lot of detail, Google encourages basic star ratings. It’s primary Web interface makes it easy to quickly rate many places. Animations when you’ve completed a rating add a touch of fun to the process; once you’ve rated a business, the card flip over to allow you to write a review. The box is sized for about four sentences. Restaurants can also be sub-rated on Food, Service, Atmosphere and Value with a smiley face or frowny face.

Hotpot's rating screen allows you to quickly rate many local businesses.
Hotpot's rating screen allows you to quickly rate many local businesses.

On Android devices, a widget makes rating possible without launching the Google Places app.

As you can see at the top of the screenshot, the ease of rating has the potential to generate a lot of quick hits of data — my ratio is about 4 ratings to each review. See my earlier post about using lots of small nuggets of data to make intelligent recommendations.

Hotpot integrates with your search history on Google. This serves as a reminder to rate places you may have recently visited. Given Google’s vast query volume, this is another important differentiator.

Hotpot also shows ratings and reviews. While Google builds up its ratings and review corpus, the page focuses on aggregated reviews from other local sites, including Yelp, insiderpages, CitySearch and others. This has been a bone of contention for Yelp’s CEO, Jeremy Stoppelman.


Google hopes to make intelligent recommendations with all of your ratings data. Instead of having users sift through mounds of data to find the right business, Google does the lifting for you.

Recommendations come in two forms:

  • Recommendations based on your previous ratings. These span venue types. For example, Ikea was recommended for me because I rated Voodoo Donuts highly.
  • Recommendations based on the ratings of your friends.

The quality of recommendations seems to be hit-and-miss so far. Some seem entirely logical; others, like the Ikea recommendation were baffling.

A few examples to allow you to judge for yourself:

The advantage of such recommendations over, say, answering Jeopardy! questions, is that it’s hard to prove them wrong immediately.

Recommendations don’t currently span metro areas. For example, if you rate places in San Francisco and then visit Chicago, the San Francisco data don’t seem to be used to make recommendations in Chicago. Google could use data like cuisine and price preferences to make at least a first cut at recommendations.


Hotpot recommendations in Google search results.
Hotpot recommendations in Google search results.

Recommendations are surfaced in a variety of places, such at the Google Places app, Google Maps and most importantly, Google search. In the screenshot above, you can see a recommendation embedded right in the search results.

This placement and personalization is an important differentiator that may drive users to Google Hotpot over Yelp and other competitors. Here, you can see a review from my friend Adam embedded in the search results:

Google Hotpot shows reviews from friends.
Google Hotpot shows reviews from friends.

Local is the perfect place for social search: It reflects how we do things In Real Life. Friends and family are often the first places we look for advice on restaurants and nightlife. Even reviews from people whose tastes we disagree with are helpful.

Google’s big challenge with social recommendations is the lack of a good social graph. I have exactly one friend feeding into my Hotpot recommendations. Other players such as Yelp and foursquare have piggy backed on Facebook’s social graph. Google can’t. And after last year’s Buzz privacy issues, Google is likely being more cautious in using other Google-collected data for a social graph.

A significant problem with the recommendations is that they aren’t used as a filter. This is especially important in mobile, where screen sizes are smaller and patience is usually shorter. In one search, the top results was a recommended place. The next results that were recommended were in positions 14 and 30. In between were places that were farther away and even some places that were closed.

When I searched for a restaurant in downtown San Francisco from my Android phone, the first personalized result was Adam’s Osha Thai restaurant, in position 16.

The stated purpose of Hotpot is a ratings and recommendations tool; the recommended places should be at the top of the list.

Mobile app

Google Places app for Android.
Google Places app for Android.

Google’s mobile search app (called Google Places) is in some ways comparable to Yelp, but Yelp’s mobile app is overall still a stronger experience.

Google Places provides a number of filters, including distance, rating, currently open, price and neighborhood. Additional filters (hidden behind the >>) allow you to search by cuisine or ambiance.

The “Open now” filter is especially important on mobile devices, where the focus is often on the here and now. In the listings, you can see annotations such as “Open until 10:00 pm” and “Opens at 4:30 pm” for places where Google has such data. Yelp’s hours data seems to be much more comprehensive.

There’s also a filter to see just the places that have been rated by friends. Oddly, there’s no way to see just the places that are recommended by Hotpot.

Places shows offers from the few businesses who are using Google Offers. There’s no way to show only businesses with offers.

Like Yelp, Facebook and foursquare, the Places app allows users to check in to a business.

The Places app doesn’t allow users to add new businesses or upload photos.

A digital to-do list

Hotpot allows you to “Save for later”, which is a great way to keep a list of places that you may want to visit later. These are integrated with Google Maps (on the desktop and in mobile) and shown as stars whenever you render a Google Map. It can be helpful when planning trips — you may discover that a shopping trip takes you near a restaurant that you’ve been meaning to visit.

I have been using Yelp’s bookmark feature (and Google My Maps before that) to track restaurants I want to visit; the integration with Google Maps may have me switch to Hotpot for that. It would be nice if Hotpot let you record why you saved it for later (e.g. recommended by Epicurious, have Groupon).

Overall experience

The biggest problem with Hotpot right now is that the overall experience doesn’t hold together. There are numerous brands being used, including Hotpot, Google, Maps and Places. In some places, clicking takes you to a map-based page, other places take you to a listings-based page. Icons and terminology are all over the board. The mobile app is similar. Maps, Latitude and Places all seem to point into similar experiences.

What’s missing?

Listing freshness. Having up-to-date listings is an important part of the local search experience. Here, Google lags both Yelp and foursquare, especially when it comes to new businesses and non-standard places such as food carts. Hotpot doesn’t seem to be designed to address this problem. There isn’t an obvious way to add new listings. Hypothetically, Google could algorithmically find new businesses by looking at search patterns and traffic to sites like Yelp.

Photos. Visuals are a large part of the experience when it comes to dining and nightlife. Although Google scrapes some pictures from other sites, they aren’t using mobile apps to collect these. Instead, Google is paying professional photographers to take pictures at selected venues. Not only is this expensive and not scalable, it’s a lot less authentic.

Engaged consumers. Yelp and foursquare have highly engaged users who significantly enhance the quality of the data.

Engaged businesses. Facebook and Twitter have engaged businesses who regularly update content about their businesses. Apparently Google offers a similar feature, but in more than a year since its launch, I’ve only seen one business use it. I found that while doing research for this post.

Tighter integration with Android. There are opportunities to improve the local experience by integrating better with the phone experience. For example, sending a message with location information could be more seamless.


I’ve deliberately avoided doing a feature-by-feature checklist. Having the most features rarely matters. Flickr has been trounced in the photo sharing space by Facebook, despite having many more features for photo lovers. The sheer size of Facebook’s distribution system was enough to overcome its feature gaps.

Google definitely doesn’t have the most features or the most engaged audiences. It’s not (as far as I can tell) trying to build local communities centered around reviewing places.

But Google has three things that are hard to match: incredible distribution from Google search, deep pockets for promotions and Android. Facebook is the only company that can really come close to Google when it comes to distribution.

Google can surely solve the branding and consistency issues that make the current product experience frustrating. The bigger question is whether Google can develop a social graph that will really drive home the benefits of Hotpot.

See also:

Thanks to Mike Blumenthal for the pointer to Google’s business status updates.

Disclosure: I have several good friends who work at Google and went to high school with co-founder and CEO Larry Page. I’ve benefited from free drinks and other Google schwag at various Google promotions in Portland.

How to pay at Starbucks using your Android phone

Android-enabled Starbucks mobile payment device.
Android-enabled Starbucks mobile payment device.

Starbucks made a lot of noise recently with the launch of mobile payments in the United States for iPhone and Blackberry users. As an Android user, I felt left out (as is often the case.) But there’s a way to use your Android phone to pay for your coffee. Here are the steps:

  1. Borrow a friend’s iPhone or iPod Touch.
  2. Set up your account and enter your Starbucks card information.
  3. Go to the “Cards” screen and click “Touch to Pay”.
  4. Take a screenshot of the bar code that appears. (Hold the power and home buttons.)
  5. Email the screenshot to yourself.
  6. Print the screenshot. (I printed it at 35% zoom to get the right size.)
  7. Cut-and-paste (physically) the bar code to the back of your Android phone.

Viola! Mobile payment device.

It’s even better than the iPhone app: it’s quicker (no need to find and launch the app and click a button) and it works even when the battery is dead.

It lacks a lot of features. You can’t find the nearest Starbucks, reload your card or see your transaction history. But for the most common task of paying for coffee, it is the optimal experience. It would be nice if Starbucks stored your preference on whether to print receipts, but that’s an issue with either method.

This illustrates one of the key challenges facing mobile payment systems that are emerging: in their desire to get our money, banks and retailers have already made paying for things incredibly simple. Swiping a credit card is just.not.that.hard.

Any digital wallet will have to be just as simple. Launching various applications, digging through menus and entering security codes are all steps that add friction to the purchase process.

Apple, Google and others entering the NFC/mobile payments game would do well to have standardized interfaces to flip among payment, library, transit and access cards versus having every app developer design interfaces as he sees fit. These could be tied to location — if you’re at Starbucks, the Starbucks card automatically shows up first.

Target’s mobile apps hit the bullseye with store integration

As smartphones proliferate, integration with mobile devices will be a key part of the offline retail experience. While many businesses offer a simple store locator, Target’s iPhone and Android apps and mobile Web site tie much deeper into their stores.

Among the key features:

  • Weekly deals. Browse through the current week’s specials by category.
  • Product availability. Scan a bar code or enter a product and it will tell you whether the item is available online or in stores. If it’s in store, availability is displayed along with the aisle that it’s located in. No more wandering through the store trying to find something. (In all of the times I’ve tried it, it hasn’t been wrong.)
  • Payment.* If you have Target gift cards, you can enter the information and store it on your phone. When you’re ready to pay, pull up the bar code on the screen and show it to the cashier.
  • Gift registry.* Look up a gift registry and find item locations.
  • Store locator.

*Not available on the Android app.

Target has long been among the most innovative retailers. Four years ago, it offered an MP3 player gift card at Christmas. It has also offered a standalone gift find finder app that suggested Christmas gifts.

In the future, I’d expect to see integration with previous in-store purchases and tighter integration between the mobile apps and the Target Web site.

This slideshow requires JavaScript.

Mobile ordering puts the cash register in your pocket

All the ballpark food you can want, delivered right to your seat.
All the ballpark food you can want, delivered right to your seat.

Next time you’re at the ballgame, your phone might get you some peanuts and Cracker Jack. I was at a Mariners game at Safeco Field earlier this week when an announcement encouraged the crowd to order concessions using their Android phones.

The app, from iConcessionStand.com, allows you to select food, drinks and team merchandise and have it delivered to your seat. When you launch the app, it asks for your seat location. It uses GPS to verify that you’re at the ballpark; you can’t order if you’re not there.

Pricing for the service is relatively modest. There’s a 99-cent service charge and a required tip. That’s well worth it to avoid long concession lines. (Pricing for food and drink, however, is the standard astronomical ballpark rate.) A $10 minimum purchase is required, but one beer gets you most of the way there. Delivery is quoted at 30 minutes. Selection was more limited than what was available on the concourse, but wide enough.

The big sticking point is payment information. After loading up my cart, I was prompted to enter my billing information, including credit card number and full billing address. For a one-off event, this was too much work. (Using a PayPal login is also an option.)

The ballpark isn’t the only place your phone can feed you. Chipotle offers ordering through an iPhone app. Build your order, pick a store for pickup, and enter payment information. When I arrived at the store, they’d received the order but it inexplicably had a delayed pickup time.  Pizza Hut has its own iPhone ordering app and Snapfinger offers ordering from a range of chains, including Outback, Baja Fresh, California Pizza Kitchen and Subway.

This integration from the virtual to the physical world will become increasingly common over the next couple of years as point-of-sale systems become better integrated with the Internet.