Preface
Some information on this post is outdated! Google Views has been migrated to Google Maps / Google Streeet View. Outdated information has been
struck through.
Last year Google added a new feature to their set of web based applications. Publishing geo located spherical panoramas (aka Photo Spheres) on Views.
In another article, Markus already described the complete workflow which is needed to publish a panoramic image on Views and embed it into your website.
I already described different methods of adding mandatory Photo Sphere meta data to an equirectangular image in a second article. One of the methods described a custom meta data panel which could be used within Photoshop CS6 and Photoshop CC to read and write the photosphere meta data.
As Adobe changed their specification for creating meta data panels for Photoshop CC 2014, I redid the description…
Note for downloading the XML files
Depending on your browser it could be the best option to click the XML download link and use the context menu to save the link as XML to your local computer!
Custom photo sphere meta data panel for Photoshop CC 2014
First you have to identify the proper location for the File Panels. On a Windows system running PS CC 2014 the files are located in
C:\Users\[Username]\AppData\Roaming\Adobe\XMP\Metadata Extensions
or directly using the appropriate environment variable:
%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions
PS CC 2014 running on Mac OS uses the following location
[Username]/Library/Application Support/Adobe/XMP/Metadata Extensions
Navigate to the location and create a sub directory named
Photosphere
with two subdirectories named
schema
and
view
Change to the newly created directory ‘Photosphere’ and create a file named
manifest.xml
with the following content (or download the file here):
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2014 by Jürgen Matern (/author/juergen/) This file is licensed under the Creative Commons Attribution ShareAlike 3.0 License (http://creativecommons.org/licenses/by-sa/3.0/). In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it and that you distribute it only under a license identical to this one. Photosphere File Info Panel (manifest.xml) --> <extension xmlns="http://ns.adobe.com/metadata/extension/1.0/" name="Photosphere" version="1.0" locFilePrefix="photosphere"> </extension> |
Change to the newly created directory ‘schema’ and create a file named
photosphereSchema.xml
with the following content (or download the file here):
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2014 by Jürgen Matern (/author/juergen/) This file is licensed under the Creative Commons Attribution ShareAlike 3.0 License (http://creativecommons.org/licenses/by-sa/3.0/). In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it and that you distribute it only under a license identical to this one. Photosphere File Info Panel (photosphereSchema.xml) --> <xmp_definitions> <!-- Defining the namespace and prefix of the schema --> <xmp_schema prefix='GPano' namespace='http://ns.google.com/photos/1.0/panorama/' label='Photosphere' description='Properties for Photospheres'> <!-- Defining the properties --> <xmp_property name='StitchingSoftware' category='external' type='openchoice' element_type='text' label='Stitching Software:' description='The software which created the panorama.'> <xmp_choice raw_value='PTGui Pro 10.0.10' label='PTGui Pro 10.0.10'/> <xmp_choice raw_value='PTGui 10.0.10' label='PTGui 10.0.10'/> <xmp_choice raw_value='Hugin' label='Hugin'/> </xmp_property> <xmp_property name='ProjectionType' category='external' type='closedchoice' element_type='text' label='Pano Projection:' description='Currently Google applications only support equirectangular projection.' > <xmp_choice raw_value='equirectangular' label='equirectangular'/> <xmp_choice raw_value='' label='none specified'/> </xmp_property> <xmp_property name='UsePanoramaViewer' category='external' type='boolean' label='Use Panorama Viewer:' description='Set this value if the image should show as photosphere.' /> <xmp_property name='PoseHeadingDegrees' category='external' type='real' label='Heading:' description='This field is only mandatory for Google Maps. It is the direction in the middle of the image in degrees. North=0, East=90, South=180, West=270. See [GPS].' /> <xmp_property name='CroppedAreaImageWidthPixels' category='external' type='integer' label='Cropped Area Image Width:' description='For full spheres the same as Full Pano Width and width of the image in pixels (see [Image Size] further down).'/> <xmp_property name='CroppedAreaImageHeightPixels' category='external' type='integer' label='Cropped Image Heigth:' description='For full spheres the same as Full Pano heigth and height of the image in pixels (see [Image Size] further down).'/> <xmp_property name='FullPanoWidthPixels' category='external' type='integer' label='Full Pano Width:' description='For full spheres this equals to the height of the image in pixels (see [Image Size] further down).'/> <xmp_property name='FullPanoHeightPixels' category='external' type='integer' label='Full Pano Heigth:' description='For full spheres this equals to the height of the image in pixels (see [Image Size] further down).'/> <xmp_property name='CroppedAreaLeftPixels' category='external' type='integer' label='Cropped Pixels Left:' description='Set to 0 for full spheres.'/> <xmp_property name='CroppedAreaTopPixels' category='external' type='integer' label='Cropped Pixels Top:' description='Set to 0 for full spheres.'/> <xmp_property name='SourcePhotosCount' category='external' type='integer' label='Source Photos Count:' description='Number of source image. This value is optional.'/> <xmp_property name='FirstPhotoDate' category='external' type='date' label='First Photo Date' description='Date and time of the first image taken. This value is optional.'/> <xmp_property name='LastPhotoDate' category='external' type='date' label='Last Photo Date' description='Date and time of the last image taken. This value is optional.'/> </xmp_schema> </xmp_definitions> |
Change to the newly created directory ‘view’ and create a file named
photosphereView.xml
with the following content (or download the file here):
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2014 by Jürgen Matern (/author/juergen/) This file is licensed under the Creative Commons Attribution ShareAlike 3.0 License (http://creativecommons.org/licenses/by-sa/3.0/). In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it and that you distribute it only under a license identical to this one. Photosphere File Info Panel (photosphereView.xml) --> <views xmlns="http://ns.adobe.com/metadata/ui/1.0/"> <view xmlns:exif="http://ns.adobe.com/exif/1.0/" xmlns:GPano='http://ns.google.com/photos/1.0/panorama/' name="Photosphere" label="Photosphere" description="This view shows the GPano properties and some other values from the EXIF metadata."> <section label="Photosphere" type="labelled"> <property name='GPano:StitchingSoftware' /> <property name='GPano:ProjectionType' /> <property name='GPano:UsePanoramaViewer' /> <property name='GPano:PoseHeadingDegrees' /> <property name='GPano:CroppedAreaImageWidthPixels' /> <property name='GPano:CroppedAreaImageHeightPixels' /> <property name='GPano:FullPanoWidthPixels' /> <property name='GPano:FullPanoHeightPixels' /> <property name='GPano:CroppedAreaLeftPixels' /> <property name='GPano:CroppedAreaTopPixels' /> <property name='GPano:SourcePhotosCount' /> <property name='GPano:FirstPhotoDate' /> <property name='GPano:LastPhotoDate' /> </section> <section label="Image Size" type="labelled"> <property name="exif:PixelXDimension"/> <property name="exif:PixelYDimension"/> </section> <section label="GPS" type="labelled"> <property name='exif:GPSLongitude' /> <property name='exif:GPSLatitude' /> <property name='exif:GPSAltitude' /> <property name='exif:GPSImgDirection' /> <property name='exif:GPSDestLongitude' /> <property name='exif:GPSDestLatitude' /> </section> </view> </views> |
The properties ‘SourcePhotosCount’, ‘FirstPhotoDate’ and ‘LastPhotoDate’ are optional values for a photosphere.
Then open the file info dialog of Photoshop CC 2014. When all the meta data is missing, the new panel looks like this on a german installation:
And the following screenshot shows the panel, when the meta data fields are already populated.
Thanks for the insights! Just on the metadata: If you’re using more recent version of PtGui (since VErsion 9.1, cf http://www.ptgui.com/news/2013/12/16/ptgui-9.1.9-released.html ) you can automatically add the metadata to the equirectangular image.
I found this feature to be hassle free.
Yes, we both use this version since it came out. However one minor problem is, that this does not work (yet) for PSD or PSB output. And also it is quite convenient to check the information directly from PS. Or be able to add the information – especially for older work.
Hello!
Thank you for this useful solution!
I was hoping the panel would show up in Bridge CC 2014, too, but that’s not the case. Is it a matter of simply copying the files to another location for Bridge or is a different code necessary?
Bye, Oliver
We are not using bridge anymore, so we unfortunately can’t give any hints regarding Bridge CC 2014. Maybe you can check the following thread for some advice:
https://forums.adobe.com/thread/1085121
I followed these instructions for photoshop cc 2015 but when I open the file info panels, there isn’t anything related to photoshphere. Is there something else I need to do to get ps to recognize the custom file info panel?
The directory structure (on a PC) should look like this:
%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere
%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\schema
%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\view
The files should be:
%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\manifest.xml
%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\schema\photosphereSchema.xml
%USERPROFILE%\AppData\Roaming\Adobe\XMP\Metadata Extensions\Photosphere\view\photosphereView.xml
At least with these files it works with my Photoshop CC 2015 installation.