I’ve had a bit of an itch to scratch. My Nikon DSLR, although fancy, isn’t fancy enough to have onboard gps. It’s really not required, but nice to have when exploring the world and you’d like to look back on where exactly the photo was taken.
I have a gadget that sits on top of the camera and plugs into the camera. It has it’s issues. It IS very accurate and even includes bearing data. But it needs to be charged ahead of time, mounted, plugged in, and turned on before going on an adventure. I usually forget one of these and then none of the photos get geo-tagged.
Phones have gps. I’m always carrying my phone and it’s almost always charged up. Sure, I can also use my phone as a camera. But I’d prefer to use my DSLR when possible.
There are apps that will track the phone. Even Google will track the phone and provide a history. The problem with Google is the history location data isn’t very accurate – at least what is made available for me to download. Some apps allow you to export the tracks, but don’t really provide an easy way to view the tracks or manage them. So I put together an app. Right now, it’s iOS flavored. Maybe I’ll port it to Android one day.
The problems I’m looking to solve with this app:
- Record GPS coordinates. Allow for a way to review the tracks, export and share them (email, air drop, etc) in GPX or KML flavor, and delete tracks.
- Sync the phone’s time with the camera’s time
- Bonus: Since the gps is running, it would be nice to have a display that could be used on a bike ride or something similar.
GPS4Camera handles the above.
There are a few more problems around GPS + phones + cameras. The biggie is the time. The phone plots coordinates with a time stamp. The images from the camera have their own timestamp. When the phone and camera are in sync, the location data will match up very nicely. When the time is off, the location data becomes useless.
I wanted the least painless way to sync the two and came up with the following. It’s not perfect, but so far, it works and isn’t too bad:
- During any point in the photo taking session, put the app in Sync mode. (It could be at the start, end, or middle of the session – it doesn’t matter)
- Using the camera you wish to apply the location data to, take a photo of the sync screen
- Later on, upload the photos to a directory of your choosing and run the qrparse script. (This is where the magic happens)
- The qrparse script will search for you your photos looking for the one with the qr code. When it finds it, it’ll compare the qr code’s time, which is from the phone, and the capture time of the photo which was from your camera. It’ll determine the time difference and pass it to “exiftool” (which specializes in photo metadata) to update the time for all photos in the directory.
- Done! Now it’s safe to apply the phone’s geo-location data to all the images!
NOTE! This does NOT sync the camera’s time to the phone. That would be nice. This app only syncs the photos’ time with your phone’s time.
Sadly, not yet available in the app store. If you would like to see it there, let me know. Otherwise, it’s open source and can be found here: https://github.com/rsbauer/gps4camera