{"id":68917,"date":"2026-10-31T08:23:37","date_gmt":"2026-10-31T02:53:37","guid":{"rendered":"https:\/\/www.quickonlinetips.com\/archives\/tools\/photo-location-finder\/"},"modified":"2026-10-31T08:23:37","modified_gmt":"2026-10-31T02:53:37","slug":"photo-location-finder","status":"publish","type":"page","link":"https:\/\/www.quickonlinetips.com\/archives\/tools\/photo-location-finder\/","title":{"rendered":"Photo Location Finder: See Where a Photo Was Taken"},"content":{"rendered":"<p>This free <strong>photo location finder<\/strong> shows where a photo was taken, if the camera saved the GPS location, and opens the spot on a map. It also works as an <strong>EXIF viewer<\/strong>, showing the date and time, camera or phone model and settings, and it can save a clean copy with the location removed before you share a photo.<\/p>\n<div class=\"qt-tool\" id=\"qt-exf\"><label class=\"qt-drop\" id=\"qt-exf-drop\" for=\"qt-exf-file\"><input type=\"file\" class=\"qtx-file\" id=\"qt-exf-file\" accept=\"image\/jpeg,image\/png,image\/webp,image\/heic,image\/heif,image\/tiff,.heic,.heif\"><span class=\"qtx-big\">Choose a photo or drop it here<\/span><span class=\"qtx-small\">JPG, HEIC, PNG, WebP or TIFF, up to 50 MB. Use the original file, not a screenshot.<\/span><\/label><\/p>\n<p class=\"qt-status\" id=\"qt-exf-status\" aria-live=\"polite\">\n<div id=\"qt-exf-res\" hidden>\n<div class=\"qtx-out\">\n<p class=\"qt-label\" style=\"margin:0 0 6px\">Where was this photo taken?<\/p>\n<div id=\"qt-exf-loc\"><\/div>\n<\/div>\n<div class=\"qtx-out\">\n<p class=\"qt-label\" style=\"margin:0 0 6px\">Photo details<\/p>\n<table class=\"qtx-kv\">\n<tbody id=\"qt-exf-kv\"><\/tbody>\n<\/table>\n<div class=\"qt-row\"><button type=\"button\" class=\"qt-btn\" id=\"qt-exf-clean\">Save a copy without location and details<\/button><button type=\"button\" class=\"qt-btn qt-btn-ghost\" id=\"qt-exf-all\">Show all details<\/button><\/div>\n<div id=\"qt-exf-allbox\" hidden style=\"margin-top:10px\"><\/div>\n<\/div>\n<\/div>\n<p class=\"qt-note\"><strong>Private by design:<\/strong> your photo is read on your own device with the open-source exifr library. It is never uploaded to QuickOnlineTips or stored anywhere. A map site sees the coordinates only if you click a map link. QuickOnlineTips is not affiliated with Google or OpenStreetMap.<\/p>\n<\/div>\n<p><script>(function () { function qtReady(fn) { if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fn); } else { fn(); } } function qtCopy(text, statusEl, okMsg) { function done(ok) { if (statusEl) { statusEl.textContent = ok ? (okMsg || 'Copied to clipboard.') : 'Press Ctrl+C (or Cmd+C) to copy.'; } } function fallback() { var ta = document.createElement('textarea'); ta.value = text; ta.setAttribute('readonly', ''); ta.style.position = 'fixed'; ta.style.top = '-1000px'; document.body.appendChild(ta); ta.select(); var ok = false; try { ok = document.execCommand('copy'); } catch (e) { ok = false; } document.body.removeChild(ta); done(ok); } if (navigator.clipboard) { if (window.isSecureContext) { navigator.clipboard.writeText(text).then(function () { done(true); }, fallback); return; } } fallback(); } function qtRand32() { var c = window.crypto || window.msCrypto; if (c) { if (c.getRandomValues) { var a = new Uint32Array(1); c.getRandomValues(a); return a[0]; } } return Math.floor(Math.random() * 4294967296); } function qtRandInt(range) { if (range === 4294967296) { return qtRand32(); } var limit = Math.floor(4294967296 \/ range) * range; var x = qtRand32(); while (x >= limit) { x = qtRand32(); } return x % range; } function qtLoad(urls, test, cb) { if (test()) { cb(true); return; } var i = 0; function next() { if (i >= urls.length) { cb(false); return; } var s = document.createElement('script'); s.src = urls[i++]; s.async = true; s.onload = function () { if (test()) { cb(true); } else { next(); } }; s.onerror = next; document.head.appendChild(s); } next(); } function qtSave(blob, name) { var a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = name; document.body.appendChild(a); a.click(); setTimeout(function () { URL.revokeObjectURL(a.href); a.remove(); }, 1500); } qtReady(function () { var root = document.getElementById('qt-exf'); if (!root) { return; } var A = String.fromCharCode(38); var MAX = 50 * 1048576; function $(id) { return document.getElementById('qt-exf-' + id); } var st = $('status'), fileIn = $('file'), drop = $('drop'), res = $('res'), kv = $('kv'), loc = $('loc'), all = $('all'), allBox = $('allbox'), clean = $('clean'); var curFile = null, curKind = '', prevUrl = null; function say(t, bad) { st.textContent = t; st.classList.toggle('qt-error', !!bad); } function sniff(buf) { var b = new Uint8Array(buf); if (b[0] === 255) { if (b[1] === 216) { return 'jpg'; } } if (b[0] === 137) { if (b[1] === 80) { return 'png'; } } if (b[0] === 82) { if (b[8] === 87) { return 'webp'; } } if (b[4] === 102) { if (b[5] === 116) { if (b[6] === 121) { if (b[7] === 112) { return 'heic'; } } } } if (b[0] === 73) { if (b[1] === 73) { return 'tif'; } } if (b[0] === 77) { if (b[1] === 77) { return 'tif'; } } return ''; } function row(tb, k, v) { if (v === undefined || v === null || v === '') { return; } var tr = document.createElement('tr'), th = document.createElement('th'), td = document.createElement('td'); th.textContent = k; td.textContent = String(v); tr.appendChild(th); tr.appendChild(td); tb.appendChild(tr); } function fmtDate(d) { if (!d) { return ''; } if (d instanceof Date) { return isNaN(d) ? '' : d.toLocaleString(); } return String(d); } function shutter(t) { if (!t) { return ''; } return t >= 1 ? t + ' s' : '1\/' + Math.round(1 \/ t) + ' s'; } function show(x) { kv.textContent = ''; loc.textContent = ''; allBox.textContent = ''; x = x || {}; var cam = [x.Make, x.Model].filter(function (v) { return !!v; }).join(' '); row(kv, 'Date taken', fmtDate(x.DateTimeOriginal || x.CreateDate || x.ModifyDate)); row(kv, 'Camera or phone', cam); row(kv, 'Lens', x.LensModel); row(kv, 'Shutter speed', shutter(x.ExposureTime)); row(kv, 'Aperture', x.FNumber ? 'f\/' + x.FNumber : ''); row(kv, 'ISO', x.ISO); row(kv, 'Focal length', x.FocalLength ? x.FocalLength + ' mm' : ''); row(kv, 'Flash', x.Flash); row(kv, 'Image size', x.ExifImageWidth ? x.ExifImageWidth + ' x ' + x.ExifImageHeight + ' px' : ''); row(kv, 'Software', x.Software); var la = x.latitude, lo = x.longitude; if (typeof la === 'number') { if (typeof lo === 'number') { var ll = la.toFixed(6) + ',' + lo.toFixed(6); var p = document.createElement('p'); p.className = 'qtx-big-out'; p.textContent = la.toFixed(6) + ', ' + lo.toFixed(6); loc.appendChild(p); var n = document.createElement('p'); n.className = 'qt-note'; n.textContent = 'This photo has GPS coordinates. Anyone you send the original file to can see this place.'; loc.appendChild(n); var ln = document.createElement('div'); ln.className = 'qtx-links'; [['See the place on Google Maps', 'https:\/\/www.google.com\/maps\/search\/?api=1' + A + 'query=' + ll], ['Open in OpenStreetMap', 'https:\/\/www.openstreetmap.org\/?mlat=' + la.toFixed(6) + A + 'mlon=' + lo.toFixed(6) + '#map=16\/' + la.toFixed(6) + '\/' + lo.toFixed(6)]].forEach(function (q) { var a = document.createElement('a'); a.href = q[1]; a.target = '_blank'; a.rel = 'nofollow noopener noreferrer'; a.textContent = q[0]; ln.appendChild(a); }); loc.appendChild(ln); } } if (!loc.firstChild) { var q2 = document.createElement('p'); q2.className = 'qt-note'; q2.textContent = 'No location is saved in this photo. Many phones turn location tagging off, and most social apps and messengers remove it when you share a photo.'; loc.appendChild(q2); } var keys = Object.keys(x).filter(function (k) { var v = x[k]; if (v instanceof Date) { return true; } if (Array.isArray(v)) { return true; } if (v === null) { return false; } return typeof v !== 'object'; }).slice(0, 150); var tb = document.createElement('tbody'); keys.forEach(function (k) { var v = x[k]; if (Array.isArray(v)) { v = v.slice(0, 12).join(', '); } if (v instanceof Date) { v = fmtDate(v); } row(tb, k, String(v).slice(0, 200)); }); var t = document.createElement('table'); t.className = 'qtx-kv'; t.appendChild(tb); allBox.appendChild(t); res.hidden = false; if (!kv.firstChild) { row(kv, 'Photo details', 'None found. The details were probably removed by an app or website.'); } } function useFile(f) { curFile = null; if (!f) { return; } if (f.size > MAX) { say('Please choose a photo under 50 MB.', true); return; } f.slice(0, 16).arrayBuffer().then(function (buf) { var k = sniff(buf); if (!k) { say('This does not look like a JPG, HEIC, PNG, WebP or TIFF photo.', true); return; } curFile = f; curKind = k; say('Reading photo details...'); qtLoad(['https:\/\/cdn.jsdelivr.net\/npm\/exifr@7.1.3\/dist\/full.umd.js', 'https:\/\/unpkg.com\/exifr@7.1.3\/dist\/full.umd.js'], function () { return !!window.exifr; }, function (ok) { if (!ok) { say('The photo reader could not load. Check your connection and try again.', true); return; } var data = {}; window.exifr.parse(f, { tiff: true, exif: true, gps: true, ifd0: true, xmp: false, icc: false, iptc: false, makerNote: false, userComment: false }).then(function (x) { data = x || {}; return window.exifr.gps(f).catch(function () { return null; }); }).then(function (g) { if (g) { if (typeof g.latitude === 'number') { data.latitude = g.latitude; data.longitude = g.longitude; } } show(data); say('Done. Details are read on your device only.'); }).catch(function () { show({}); say('No readable photo details were found in this file.'); }); }); clean.hidden = (k === 'heic' || k === 'tif'); }); } fileIn.addEventListener('change', function () { useFile(fileIn.files[0]); }); ['dragenter', 'dragover'].forEach(function (ev) { drop.addEventListener(ev, function (e) { e.preventDefault(); drop.classList.add('qt-hover'); }); }); ['dragleave', 'drop'].forEach(function (ev) { drop.addEventListener(ev, function (e) { e.preventDefault(); drop.classList.remove('qt-hover'); }); }); drop.addEventListener('drop', function (e) { var f = e.dataTransfer.files[0]; if (f) { useFile(f); } }); all.addEventListener('click', function () { allBox.hidden = !allBox.hidden; all.textContent = allBox.hidden ? 'Show all details' : 'Hide all details'; }); clean.addEventListener('click', function () { if (!curFile) { return; } if (prevUrl) { URL.revokeObjectURL(prevUrl); } prevUrl = URL.createObjectURL(curFile); var im = new Image(); im.onload = function () { var w = im.naturalWidth, h = im.naturalHeight, m = Math.max(w, h), k = m > 8000 ? 8000 \/ m : 1; var cv = document.createElement('canvas'); cv.width = Math.round(w * k); cv.height = Math.round(h * k); var cx = cv.getContext('2d'); if (curKind === 'jpg') { cx.fillStyle = '#ffffff'; cx.fillRect(0, 0, cv.width, cv.height); } cx.drawImage(im, 0, 0, cv.width, cv.height); var type = curKind === 'png' ? 'image\/png' : 'image\/jpeg', ext = curKind === 'png' ? 'png' : 'jpg'; cv.toBlob(function (b) { if (b) { qtSave(b, 'photo-no-location.' + ext); say('Saved a clean copy with location and camera details removed.'); } }, type, 0.92); }; im.onerror = function () { say('Your browser could not open this photo to clean it.', true); }; im.src = prevUrl; }); }); })();<\/script><\/p>\n<div class=\"qt-next\">\n<p class=\"qt-next-h\">Try another free tool<\/p>\n<div class=\"qt-next-g\"><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/reverse-image-search\/\">Reverse Image Search<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/my-location\/\">My Location<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/image-to-text\/\">Image to Text<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/image-compressor\/\">Image Compressor<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/image-converter\/\">Image Converter<\/a><a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/image-resizer\/\">Image Resizer<\/a><\/div>\n<\/div>\n<p><strong>Quick answer:<\/strong> Choose the original photo file. If it has a saved location, the GPS coordinates appear with a link to see the place on Google Maps. If it says no location is saved, the location was turned off when the photo was taken or was removed by an app. To share a photo safely, press <strong>Save a copy without location and details<\/strong>.<\/p>\n<h2>How to find where a photo was taken<\/h2>\n<ol>\n<li>Choose or drop the <strong>original<\/strong> photo file from your phone or camera (not a screenshot, which never has a location).<\/li>\n<li>Read the location and the photo details: date taken, camera or phone, lens and settings.<\/li>\n<li>Click <strong>See the place on Google Maps<\/strong> to view the spot.<\/li>\n<\/ol>\n<h2>Why many photos have no location<\/h2>\n<p>A photo only has a location if the phone or camera had location tagging switched on when it was taken. Most social networks and messaging apps remove the location and other details when you post or send a photo, so a picture saved from social media usually shows no location. For those, a <a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/reverse-image-search\/\">reverse image search<\/a> can still help find where the photo first appeared.<\/p>\n<h2>Remove the location before you share<\/h2>\n<p>Photos sent as files, by email or on some websites can reveal your home, school or workplace. Press <strong>Save a copy without location and details<\/strong> to download a clean copy of a JPG, PNG or WebP photo with the GPS location, date and camera details removed. The picture itself looks the same.<\/p>\n<h2>What is EXIF data?<\/h2>\n<p>EXIF is information that cameras and phones store inside a photo file: the date and time, camera make and model, lens, shutter speed, aperture, ISO, flash and, if enabled, the GPS location. Press <strong>Show all details<\/strong> to see every tag the file contains.<\/p>\n<h2>FAQ<\/h2>\n<h3>Is my photo uploaded?<\/h3>\n<p>No. The photo is read on your own device with the open-source exifr library and is never sent to QuickOnlineTips or stored.<\/p>\n<h3>Can it find the location of any photo?<\/h3>\n<p>Only when the location is saved in the file. It cannot work out a location from what the picture shows.<\/p>\n<h3>Does it work with HEIC photos?<\/h3>\n<p>Yes, it reads location and details from HEIC photos, the format many phones use. The clean-copy button works with JPG, PNG and WebP, so convert a HEIC photo to JPG first if you want a clean copy.<\/p>\n<p>To see your own position right now, use <a href=\"https:\/\/www.quickonlinetips.com\/archives\/tools\/my-location\/\">My Location<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This free photo location finder shows where a photo was taken, if the camera saved the GPS location, and opens the spot on a map. It also works as an EXIF viewer, showing the date and time, camera or phone model and settings, and it can save a clean copy with the location removed before&#8230;<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":65595,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-68917","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/68917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/comments?post=68917"}],"version-history":[{"count":0,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/68917\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/pages\/65595"}],"wp:attachment":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/media?parent=68917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}