StreetsBefore I get to the real meat, let me give you a short update on Streets. The updated and renamed 2.0 version of the app was launched a week ago and received great feedback so far. The New York Times reviewed Streets and writes:
the Streets app shows the Street View in higher resolution than Google does. A user can zoom in on – and read – signs that would be undecipherable in Google’s own Street View.
With that little update out of the way, I’d like to go through the details of the Streets API allowing to launch Streets from 3rd party apps using specially crafted URLs. Where To? uses this technique to integrate Street View panoramas in a seamless fashion.

Support for x-callback-url

Streets is designed to be also used as a helper app that plays well together with other apps. This requires a bidirectional connection to let the user return to the calling app easily. For example, this is the user experience of a Where To? user using Streets:

Streets Where To? connection

The Back button with the icon of the originating app (plus the app name on iPad) takes the user back to the originating app with a single tap. No app switcher juggling needed. To implement this, we’re following the x-callback-url specification with the addition of a parameter for the source app’s icon. If desired, Streets can return to the calling app immediately if no panorama photo is available for the given location.

Where To? APIParameters

To specify Street View panoramas, in the simplest case you just send the latitude and longitude of the location. If you want to go fancy, you can specify everything from the concrete panorama ID, the view heading and pitch through to a custom panorama title. All the details including how to detect if Streets is already installed on the user’s device can be found on our Streets API page.

Promoting your Streets enabled app

We’re glad to introduce apps making use of the Streets API on our blog. Just let us know. Also please contact us and explain your needs if you’re missing a certain API. We’re open to expand this API for new use cases.

Leave a comment