High Falls, Pigeon River

by Jakub

submit your photo

Hall of Fame
View past winners from this year

Please participate in Meta
and help us grow.

Sign up ×
Photography Stack Exchange is a question and answer site for professional, enthusiast and amateur photographers. It's 100% free, no registration required.

I have a 360° panoramic photo, 18432×9216 px in size, stitched with ICE. I have uploaded the panorama to Photosynth, so that it can be viewed and navigated conveniently. However, Photosynth requires the Silverlight plugin, which some don't have installed. As an alternative, I would like to convert the panorama into a custom Google Streetview panorama.

What is the simplest way to create a custom Google Streetview panorama?

Note: I only want to share the panorama with friends, possibly via a link. I do not want the panorama to be freely discoverable on the web.

share|improve this question
This might help some - Build your own Street View with Google Street View API. Are you stuck on a specific step of the process? The link you already provided has quite a bit of detail. –  dpollitt Apr 28 '13 at 20:44
@dpollitt Following the process should be no problem for me (I'm a developer). However, I'd prefer a simple end-user friendly solution, with as little manual steps as possible. Anyhow, thanks for the link! –  feklee Apr 28 '13 at 21:20
@feklee I'm not sure that google lets you use your own photos for panos. Nothing in the API says that, it's more like how you can take Google Street View data and assemble them on your own. –  Peng Tuck Kwok May 1 '13 at 3:29
I reccomend checking out this link as well in case you haven't seen it: labs.teehanlax.com/project/hyperlapse Not directly related but still relevant i think –  NULLZ May 6 '13 at 15:12
Interestingly Photosynth does work without Silverlight, although for some reason you have to fettle the user-agent string in the browser to tell the server it's a phone and to serve up HTML5 instead. –  James Snell Aug 4 '13 at 11:38

3 Answers 3

I found the tutorial How to upload non-android 360 panoramas to Google Maps and successfully uploaded a spherical panorama into Google+. I haven't took the step to publish it on Google Maps, but I guess for private sharing, G+ is better.

Note the spherical icon on the thumbnail.

Basically, we have to:

  • turn on the option "Upload my photos at full size" on G+ Settings.

  • add metadata to the photo, either:

    1. using the tool photo-sphere.appspot.com

    2. adding the EXIF manually (adjusting the pixels and the GPS data):

share|improve this answer
Haven't tried it yet, but that looks very interesting! –  feklee Aug 15 '14 at 9:11

I realized that GraphicsMagick offers a simple way to prepare images for Streetview. The software runs on a large number of operating systems. An alternative is ImageMagick.

Tutorial based on Maps Javascript API V3

Example prerequisite

Panorama image my_panorama.jpg, sized 18432×9216 px (360° horizontally, 180° vertically), stitched with ICE.

Example definitions

  • Tile size: 1152×576 px

  • Naming structure for tile files:



    • Z, zoom level: from 0 to 4

    • N, tile number: y * (2^Z) + x

Creation of tiles

Unix command line (on Windows/DOS, replace cp by copy):

cp my_panorama.jpg tile_0_0.jpg
gm convert panorama.jpg -crop 9216x4608 tile_1_%d.jpg
gm convert panorama.jpg -crop 4608x2304 tile_2_%d.jpg
gm convert panorama.jpg -crop 2304x1152 tile_3_%d.jpg
gm convert panorama.jpg -crop 1152x576 tile_4_%d.jpg
gm mogrify -size 1152x576 -resize 1152x576 +profile "tile_*_*.jpg"

Tool for displaying panorama with Streetview

Just copy&paste this code. To view the panorama with Google Streetview, simply open the file index.html (see below) in a modern web browser.


<!DOCTYPE html>
    <title>My panorama</title>
    <meta charset="utf-8">
    <link href="index.css" rel="stylesheet">
    <script src="index.js"></script>
    <div id="panorama"></div>


html, body, #panorama {
    height: 100%;
    margin: 0;
    padding: 0;


function initialize() {
    var panoOptions = {
        pano: 'myPanorama',
        visible: true,
        panoProvider: getCustomPanorama

    var panorama = new google.maps.StreetViewPanorama(
        document.getElementById('panorama'), panoOptions);

function getCustomPanoramaTileUrl(pano, zoom, tileX, tileY) {
    var n = tileY * Math.pow(2, zoom) + tileX;

    return 'tile_' + zoom + '_' + n + '.jpg';

function getCustomPanorama(pano, zoom, tileX, tileY) {
    if (pano === 'myPanorama') {
        return {
            tiles: {
                tileSize: new google.maps.Size(1152, 576),
                worldSize: new google.maps.Size(18432, 9216),
                centerHeading: 105,
                getTileUrl: getCustomPanoramaTileUrl

google.maps.event.addDomListener(window, 'load', initialize);

Further reading

Google's tutorial "Providing Custom StreetView Panoramas"

share|improve this answer
Not really what most would call simple, I presume. Therefore I don't mark my own answer as accepted for now, although it does show a straight forward solution to the problem. –  feklee May 7 '13 at 21:57

360cities: panoramas can be viewed on desktop, iPhone, iPad and in Google Earth.

If you want a more customized panorama or virtual tour (many panoramas connected), krpano would be the best option.


Google Maps has a repo on GitHub that can convert Android's Sphere Images to Street View: https://github.com/googlemaps/streetsphere and it also has an online generator: http://street-sphere.appspot.com/

But it only works with Android's Sphere Images which contains metadata. You can try to generate one with this image. The output zip file contains that image and a web page.

share|improve this answer
Thanks! Those are interesting alternatives, though that doesn't answer my question. –  feklee May 1 '13 at 12:21
Thanks for pointing to the converter from Android Photo Sphere to Google Maps API Custom Street View. I have found that before, but it's not appropriate for me, as I have generated the panorama by other means. –  feklee May 6 '13 at 0:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.