#!/usr/bin/env python # coding: utf-8 # In[1]: from PIL import Image import glob # In[2]: get_float = lambda x: float(x[0]) / float(x[1]) def convert_to_degrees(value): d = get_float(value[0]) m = get_float(value[1]) s = get_float(value[2]) return d + (m / 60.0) + (s / 3600.0) def get_lat_lon(info): try: gps_latitude = info[34853][2] gps_latitude_ref = info[34853][1] gps_longitude = info[34853][4] gps_longitude_ref = info[34853][3] lat = convert_to_degrees(gps_latitude) if gps_latitude_ref != "N": lat *= -1 lon = convert_to_degrees(gps_longitude) if gps_longitude_ref != "E": lon *= -1 return lat, lon except KeyError: return None # In[3]: filenames = 'D:/RPS/drone/2018-03-24_connamesset/*.jpg' latlons = [get_lat_lon(Image.open(f)._getexif()) for f in glob.glob(filenames)] # In[4]: import folium m = folium.Map( location=latlons[0], zoom_start=14 ) for coord in latlons: folium.CircleMarker( location=[ coord[0], coord[1] ], radius=1 ).add_to(m) m # In[ ]: