Wednesday, June 13, 2007

Aperture & Google Earth

You have photos in Aperture that have GeoTags in their EXIF data and you'd like to view these locations in Google Earth?

Here is an AppleScript to do it :

on run
tell application "Aperture"
set theSelection to selection
set theImage to item 1 of theSelection -- get the first selected image
try -- there might not be geotags in the photo
set lat to value of EXIF tag "Latitude" of theImage -- get the latitude
set lon to value of EXIF tag "Longitude" of theImage -- get the longitude
tell application "System Events" -- find out if Google Earth is running
set isRunningGE to (name of processes) contains "Google Earth"
end tell
if isRunningGE then -- only do this if GE is running, it is such a hog at startup
tell application "Google Earth" -- switch to Google Earth
activate -- bring Google Earth to the front
set viewInfo to GetViewInfo -- get the current view
set latitude of viewInfo to lat -- set the new latitude and longitude
set longitude of viewInfo to -lon -- bug in Aperture 1.5.n, reverses the Longitude
SetViewInfo viewInfo -- go to the new view
end tell
display dialog "Launch Google Earth first please" with title "Show on Google Earth" buttons {"OK"} with icon stop
end if
end try
end tell
end run

Save this as a script called "Show on Google Earth" in ~/Library/Scripts.
Enable the Scripts Menu (if necessary) using /Applications/AppleScript/AppleScript
Select a photo (with Lat/Lon) in Aperture.
Select the script from the Scripts Menu.

Google Earth needs to be launched first.