liquidx/ words/ blog/
2021-05-02

Wherecam

Examples of Wherecam

I love discovering places by reading about them on magazines and travel guides. If I find an interesting place, I want to see it on Google Maps to get more information, see where it is and save it for later.

Today, I have to manually type this in to Google Maps' search box (extra hard if I only have the Japanese name). Wouldn't it be nice if I could just scan the page and search Google Maps all in one go?

That's what Wherecam does. With Wherecam, you take a photo of the name of the place that's on a magazine or travel guide, and it does the rest. It'll show a snippet of the place and let you jump straight to the place in Google Maps.

That's it.

Try this out at wherecam.web.app — and if you find it useful, save it to your home screen and it behaves like a normal iOS or Android app.

Let me know on Twitter at @liquidx what you think.

Continue on for more tech-y details.

The implementation is straightforward, it uses the Google Cloud Vision API and Google Maps Places API, hosted on Google Cloud Functions and served off Firebase Hosting. The Cloud Function is a single NodeJS function that accepts an image in a POST request and uses Cloud Vision's Text Detection and Google Maps Find A Place by Text API to return back a place given the text on the screen with incredibly simple heuristics.

The web app itself is about 400 lines of Javascript, and the Node JS Cloud Function is another 300 lines.

This all works because the whole app relies on the smartness behind the Google APIs. Cloud Vision is incredibly good at text detection, working across many languages, and able to detect text at any reasonable angle or distortion, including vertical text. The Place Search is forgiving too, able to understand partial names, mistyped names and able to come up with the most plausible place no matter where you are.