You can do that with a program called Geosetter. You locate a position on a map (Google Maps, OpenStreetMap, etc.) and then "assign" those coordinates to an image or images you select. Saving the image from within the program writes those coordinates into the EXIF header.

The trick with your photos is to know exactly where on the earth's surface the image actually is, given that they're shot from some altitude above the earth's surface.

Looking at the software this is not what I need Im afraid. All the images already have gps co-ordinates embedded in the EXIF files, this was done when we shot the images. What Im trying to do is keyword the images with the nearby street names and buildings that appear within the image. This is so people looking in my library can then search for relevant photographs.

I don't know of any ready-made tool that does this, but it shoudn't be all too difficult to whip up something

the database of coordinates plus returned geocode results is in our current interpretation of our license a derivative database and subject to the ODbL for that reason I would not store the geocode results in the photographs, however there is clearly no issue with your customers using such a database to locate interesting images.

Maybe what I had in mind won't work. Perhaps if someones reading this they could help if I clarify further. All the images are already geo-encoded and Adobes Lightroom which I use to edit the images already does a reverse lookup. As my images are taken obliquely from a helicopter, that does not help though as the location Im flying over is usually not included in the image. Is it possible to select part of a map ( that shows some of the locations in each photograph ) by hand, and then download the building names and street names from that map into a text file which I could then add to the keywords of each image. Thanks

If you know the rough lat/lon of the location you want to find street names for you could use a Overpass Query such as this one http://overpass-turbo.eu/s/d31, which returns all named streets within 300 m of an arbitrary point in Walworth. If you can directly use the geocoded co-ordinates of the photo or of the subject then all the better.

Exactly how one integrates this into a workflow I cant say (the turbo queries can be saved to run overpass which in turn can be run as a command line).

@SimonPoole raises the ODBL, but if the primary purpose is to enable customers to better identify suitable images, making the data of photo locations & streetnames publicly available might not be an issue. The fine points of how ODbL applies to EXIF data will no doubt exercise a lawyer.

Firstly, thanks so much for answering the question, that is certainly along the lines of what Im trying to achieve. Apologies for my questions, as Im completely new to mapping. Have you any idea if its possible, using http://overpass-turbo.eu/s/d31to zoom in and select just part of a map, and secondly would you happen to know if its possible to do so also seeing the names of buildings as well as street names, such as you can view on http://wikimapia.org. Thanks.