Extract lat long data and get map location URLs from EXIF data in images.

Usage no npm install needed!

<script type="module">
  import exiflocation from 'https://cdn.skypack.dev/exiflocation';



Client-side GPS coordinate extraction using JavaScript.


You'll need Component and GNU make. Then run:

git clone https://github.com/mattcg/exif-location.git
cd exif-location/

Alternatively, use Component to install to your project.

component install exiflocation

ExifLocation is also available using Bower.

bower install exiflocation


See example/ for a complete example.


ExifLocation uses FileReader and DataView (available since Chrome 9, Firefox 15, IE 10, Safari 5.1). Use this method to check support in the current runtime.

Broader support is possible using jDataView.

ExifLocation.loadFromFileList(fileList, progressCb, cb)

Pass a FileList as the first argument. The progressCb argument is a function that's executed once for each file in the list, receiving an error (if any) as the first argument and the ExifLocation instance as the second. The cb argument is executed once all the files have been loaded and receives an array of ExifLocation instances in the same order as the corresponding files in fileList.

var file = document.getElementById('file');

file.multiple = true;
file.addEventListener('change', function(event) {
    ExifLocation.loadFromFileList(event.target.files, function(err, exifLocation) {
        if (!err) {
}, false);

loadFromFile(file, cb)

Receives a File as the first argument. The callback function receives an error object or null as the first argument and the ExifLocation instance as the second.

loadFromArrayBuffer(arrayBuffer, cb)

As above, but with an ArrayBuffer.


Returns the decimal latitude.


Returns the decimal longitude.

getGoogleMapsUrl(protocol, zoom, type)

Get a Google Maps URL for the embedded location. The protocol is relative by default. The type parameter is either 'm' for the normal map (default), 'k' for satellite, 'h' for hybrid, 'p' for terrain or 'e' for Google Earth.

Might be handy


ExifLocation is copyright © 2013 Matthew Caruana Galizia, licensed under an MIT license.