Location QR code generator

Scan, and the map opens on your venue. No typing an address, no wrong branch of the same street name.

By QRotto · Updated · 5 min read

Two kinds of location code

This tool makes both, and the difference matters more than it looks.

Compared onMaps linkgeo: code
What it holdsA Google Maps URLRaw coordinates
Needs internetYesNo, the coordinates are in the image
Works from an addressYesCoordinates only
Opens inMaps, or a browserThe phone's default map app
SupportUniversalGood on Android, patchier on iPhone

For most printed material the Maps link is the safer choice, because it falls back to a browser tab when no map app is installed, so it does not simply fail. The geo: version is worth it when the scanner may have no signal, which is a real situation at rural venues, festival sites and trailheads.

Getting coordinates for a place

If you want the offline version, you need latitude and longitude. The quickest way:

  1. Open Google Maps on a computer and find the exact spot.
  2. Right click on it.
  3. The first item in the menu is the coordinates. Click to copy.
  4. Paste the first number as latitude, the second as longitude.

On a phone, press and hold on the map instead, and the coordinates appear in the search bar.

Drop the pin where people should actually arrive. A large venue's registered address is often the main office, not the entrance, the car park or the delivery bay. Coordinates let you be precise in a way a street address cannot.

Where a location code earns its place

Address or coordinates?

Use the address when the place is easy to find and the address is unambiguous, a high street shop, a well known venue. The map handles the search and shows the business name, which reassures the person scanning.

Use coordinates when precision matters: a specific entrance, a field, a spot with no address, or anywhere a street name repeats in the same town. Coordinates cannot be misinterpreted.

Which location format to use, from our test

The five formats, and what they look like

We used Grand Central Terminal in New York, at 40.752726, -73.977229, because it is a real place anyone can check. Here is each format written out:

FormatWhat you encodeCharacters
geo: coordinatesgeo:40.752726,-73.97722924
Plain address text89 E 42nd St, New York, NY 1001732
Maps link, short formhttps://maps.google.com/?q=40.752726,-73.97722947
Apple Maps linkhttps://maps.apple.com/?ll=40.752726,-73.97722947
Maps link, documented formhttps://www.google.com/maps/search/?api=1&query=…68
Copied from the browser barhttps://www.google.com/maps/place/Grand+Central+Terminal/@40.7527,…187

That last one deserves a closer look, because it is the one people actually use. A link copied out of Google Maps carries the place name, the map centre, the zoom level, a data blob of internal place identifiers, and the coordinates again in a different notation. All of it goes into the QR code. All of it has to be read back by a camera.

The result

Four QR codes for the same location, printed at the same width. The geo: version is 25 by 25 modules with large clear squares. The Maps link is 33 by 33. The api=1 link is 37 by 37. The link copied from the browser bar is 57 by 57 and visibly finer. All four decoded.
The same place, the same printed width, error correction level M. Left to right the modules get smaller because there is more data to fit in the same space. All four decoded from a clean image.
FormatCharsVersionGridArea vs geo:Decoded
geo: coordinates24225 x 251.0xYes
Plain address text32329 x 291.3xYes
Maps link, short form47433 x 331.7xYes
Apple Maps link47433 x 331.7xYes
Maps link, documented form68537 x 372.2xYes
Copied from the browser bar1871057 x 575.2xYes

Every one of them decoded, so nothing here is broken. The difference is not about whether a code works on a screen. It is about how much room each module gets when the code is printed at a fixed size.

The finding in one line: going from a copied browser link to plain coordinates cut the grid from 57 x 57 to 25 x 25. At the same printed width, that makes every black square more than twice as wide.

Do you need seven decimal places?

The obvious next thought is to shorten the coordinates themselves. Seven decimal places looks excessive, and it is. So we tested trimming them, expecting a useful saving.

We were wrong, and the result is worth publishing because it is the opposite of what we assumed:

DecimalsPayloadGridWorst case error on the ground
6geo:40.752726,-73.97722925 x 250.07 m
5geo:40.75273,-73.9772325 x 250.70 m
4geo:40.7527,-73.977225 x 256.98 m
3geo:40.753,-73.97725 x 2569.8 m
2geo:40.75,-73.9825 x 25698 m
1geo:40.8,-74.021 x 216.98 km

Cutting from six decimals to two removed eight characters and changed the code not at all. It stayed at 25 x 25 the whole way down, because QR codes come in fixed version steps rather than growing character by character. You only drop a version step at one decimal place, by which point you are pointing at the wrong end of Manhattan.

The ground error column is straight trigonometry, not a measurement: one degree of latitude is about 111.3 km, and longitude shrinks by the cosine of the latitude. The practical reading is that five decimal places is accurate to under a metre and costs nothing, so trim to five if you like tidy numbers, and stop there. Precision is not where your savings are. Format is.

How we tested this

Method, so you can judge the numbers or repeat them:

  • One location throughout, encoded six ways, so the only variable was the format.
  • Error correction level M for every code, the common default. Higher levels enlarge every grid in the table but do not change the ranking.
  • Version and module count read from the encoder rather than measured off an image, so they are exact.
  • Every code decoded back with OpenCV's QR detector and compared character by character against what went in. All six matched.
  • The ground error figures are calculated, not measured: half a step of the last decimal place, converted to metres at this latitude.

Two honest limitations. First, a software decoder reading a clean image is more forgiving than a phone camera, so the fact that all six decoded here says nothing about how the 57 x 57 version behaves on a card in a dim room. That is the point of the sizing section rather than the decode results. Second, the print floor of 0.4 mm per module is a widely used working figure rather than something we measured on a press, and your printer and paper stock will move it.

Nothing here needs special equipment. Encode the same place both ways in our location generator, put the two images side by side at the same width, and the difference is visible without measuring anything.

Common questions

Will it open Apple Maps on an iPhone?

A Google Maps link opens in the Google Maps app if it is installed, or in a browser if not. If your audience is heavily iPhone based and you would rather they land in Apple Maps, use the coordinates option, which hands off to whichever map app the phone treats as default.

Does the location code work without internet?

The geo: version holds the coordinates in the image, so the map app receives them with no connection. Whether the map can then show that area depends on cached or offline maps on the device.

Can I include a place name with the coordinates?

The geo format allows a label, but support varies enough that we leave it out. If the name matters, use the address mode or print the name next to the code.

How accurate are the coordinates?

Six decimal places, which is what Google Maps gives you, is accurate to roughly a tenth of a metre. Far more precision than any real world use needs.

For an event, pair this with a calendar code so the date and the place both land on the phone in two scans. Venues also tend to want a WiFi code and a phone code. Our hotel guide and café guide cover which codes belong where.

Which format you pick changes how big the code has to be printed. We encoded one address six ways and measured every result in this format comparison: the link copied from the Google Maps address bar came out more than five times the area of plain coordinates.

QRotto

QRotto builds free browser based QR code generators and writes the guides that go with them. Every generator is verified by decoding the codes it produces and confirming the output matches the input exactly. See our editorial standards.