Photo mapping

From OpenStreetMap Wiki
Jump to: navigation, search
Available languages
Deutsch English español italiano 日本語 polski русский


For tracing aerial photos, see Aerial imagery.
Mapping with photos.png

A popular mapping technique, photo mapping can be a great timesaver - it can be far quicker taking photos of street signs or points of interest than either to write it down or fiddle with the GPS waypointing. What's more, since digital cameras add the date and time to each photo (in the EXIF data), and the GPS tracklog can be used to convert the time into your exact position, it's easy to match up the photos to the exact position they were taken.

Simple photo mapping

Use your camera to help you remember stuff. It can be as simple as that!

You don't need to use GPS and other advanced tricks described on this page. This is particularly true if you're in an area with good bing coverage (makes it a lot easier to get things in the right place) and if you have a good memory for this kind of thing. You'll need to remember the path you walked and the direction you were facing when you took the photos. To aid your memory it's always a good idea to input map data as soon as possible after collecting it. Also the more photos you take the better. If an area of one photo is visible in the previous photo, it makes it easier to orientate when you're looking back over them.

Orientation

Even if you have a GPS track, it can be difficult to determine the way you were facing when taking a photograph. You can develop your own tricks to solve these problems, but here's one approach: Simply rotate the camera: landscape pictures for what's ahead, portrait-size for infos about the way you just came from and a rotation of +/- 45° for what is on the right/left of the road. Pretty low-tech, but sufficient most of the time. You can also work out orientation using the angle of the sunlight in the pictures.

Synchronizing GPS and camera

Some cameras come with in-built GPS, and some GPS units come with in-built camera so these devices will typically write geolocation data to the image file's metadata (EXIF) each time the shutter is snapped. This also happens with smartphones, although you may need to enable it. This makes things much easier. Tools such as JSOM will generally use this geolocation metadata.

What if you're working with two separate gadgets, a camera and GPS unit? See Geotagging Source Photos for a detailed description.

Integration with Potlatch

Now, Potlatch can read a KML file for geotagged photos. See Potlatch/Photo-mapping for detail.

Integration with JOSM

JOSM Screenshot, showing the photo mapping feature.

The best way of working with photos in OSM is using JOSM, Tutorial.

First open a GPX file. It should then be listed as a layer (Toggle the 'Layers' panel, if it isn't visible). Right-click the layer listing, and select 'import images'. Select all the images (or the folder) you want. It will overlay little camera icons on the track based on the time the image is taken. (If you don't have a GPX file, but just geotagged images taken e.g. with the standard iPhone app: just open the images with File -> Open form JOSM).

The positioning of the camera icons along your GPS track is crucial, and depends on the offset in timestamps recorded by your two devices (camera and gps unit). You will need to adjust this offset, effectively moving the camera icons forward/backward along your route until they are in the right place. The most accurate way of doing this is to have a photo of the GPS unit screen showing the time (you need to remember to take such a photo at the time). On the 'correlate images' window there is button to 'Use photo of an accurate clock'. Failing that, you would use the other buttons 'Auto-guess' and 'Manual adjust' to tweak the positioning of all the photos. You can do this based on one photo where the exact position is already clear. JOSM remembers the offset, so next time you may find it gets it right without adjustment.

Some smartphones and other devices have 2-in-1, camera and GPS. In this case, you don't have a photo of the GPS screen, but images must be logically synched to the GPS tracklog. However, JOSM might not recognise synching. In the case of Android smartphones (as tested with a HTC G1 phone), if synching hasn't happened by default, you can re-synch the GPX tracks and the photos that you get from the phone: select "Sync Time" in any of the photos, choose +0 as the value, and all photos will be placed correctly.

The functionality of AgPifoJ plugin is now included in the JOSM core software (no need to install it)

Writing EXIF data back to Photos

This plugin, JOSM/Plugins/Photo_Geotagging, will write EXIF data back to images.

These can then be uploaded to flickr and displayed on their map, and distributed via GeoRSS or KML. Make sure "Import EXIF location data" is set to on http://www.flickr.com/account/geo/exif/?from=privacy

Tagging and storage

If you want to tag an object (node, way etc) to show that you positioned it using a photograph and not GPS data (perhaps a fence you didn't walk along running directly between two places already on the map), use "source=photograph". If, more commonly, it's the name of the object that you got from the photo (e.g. a street name), use "source:name=photograph". Similarly, for road numbers (e.g. ref=A305), use "source:ref=photograph".

There's nowhere within the OSM project for the photos themselves to be stored. If you upload them to a website such as flickr, you can use the "source_ref=http://example.com/123.jpg" (or "source_ref:name=" or "source_ref:ref=") tag to link the photo to the object.

If you're using the Annotation Presets with JOSM, it'll suggest the right tag at the right time, and you won't need to worry about which one is which!

See also: Source for more source-tagging options

You should add the GPS positions to your photos, see Geotagging Source Photos.

Other Software

EXIF data showing creation time

OJW's image locator script can combine a directory full of JPEG images, with a GPX tracklog, to produce a list of latitude/longitudes for each photo.

Seth Golub's geocoding scripts do pretty much the same thing, but write the data into the EXIF section of the JPEGs using exiv2. The scripts also provide a more usable command line interface to exiv2 for reading and writing geographic data to/from EXIF headers.

More software and information about writing location in the pictures' metadata can be found on the Geotagging Source Photos wiki page.

Some Nokia camera phones do not include date information in EXIF headers, causing JOSM and other tools to fail. The date and time can be copied from the file creation time using the useful Perl library and command-line application ExifTool : $ exiftool -P '-FileModifyDate>DateTimeOriginal' *.jpg

For Linux users there is GPSCorrelate which has command line and GUI apps and is available in most repositories.

Also there is GPSPrune, a java-based cross-platform application which can correlate photos manually or automatically using timestamps (from GPX, KML or text files). It can output the photos in a KMZ file or it can use ExifTool to write the coordinates to the JPEG files.

A little tool to compute the -geosync parameter for ExifTool given a photo of an accurate time source, is found here.

Websites/projects about geolocating photos

Websites/projects as (free) services:

  • Flickr, the photo sharing site, supports special OSM "machine tags". If it's a photo of an OSM object you can add tags such as osm:way=123456 or osm:node=654321 and Flickr will link to the data browser page. We also have a normal 'openstreetmap' tag and a group.
  • OpenStreetView, project to upload geotagged images and put them on openstreetmap layers. Even if you don't have any images yourself, you can help by moderating existing images!
  • Mapillary

Miscellaneous (local tools or software repositories):

  • CycleStreets (cyclestreets.net) has a Photomap for street photos of cycling facilities (No geographical restriction, though routing is UK-only). CycleStreets for iPhone has direct addition of photos, and the app code is GPL
  • Show Your Places (syp.renevier.net) is a CMS specifically designed for showing geolocalizated photos and add. A software repository with demo page. It requires PHP and MySQL.
  • phpMyGPX (phpmygpx.tuxfamily.org) is an open source web based application showing photos and GPX tracks on different OSM layers. A software repository with demo page. It requires PHP and MySQL.
  • Viking (viking.sf.net), local program allows you to create and edit tracks and waypoints.

Abandoned or merged projects:

  • MapPIN'on OSM, introducing system of geotagged photos. The website is designed as very simple in order to introduce millions of photos. This server doesn't hold any photos. Those photos are uploaded on each author's blogs and just linked to "MapPIN'on OSM" by RSSes. Seems to be defunct (except for the Ads?).
  • OpenStreetPhoto. Somewhat misnamed project. Mostly working on various ideas for gathering aerial imagery (quadcopters) but some work on OCRing of street-level imagery. Seemed more active in 2009, then merged to OpenStreetView.


Other photography

If you get any better sunny weather / picturesque photos (not just pictures of a street sign) while you're out mapping...

See also