tripod pano ids are weird
written on 2026-09-12, last updated 2026-09-12
i was messing around with some google arts & culture coverage in south korea (as one does), and noticed something a little bit weird on this pano: every single panorama linked to it had very similar ids. more specifically, 11 arbitrary characters, followed by AAARV4vZy, followed by 2 more characters (regex: [\w-]{11}AAARV4vZy[\w-]{2}). huh, odd. i decided to check a few more panos, and the observations generally held - there is a closely related group of AAAROIgQd, or perhaps AAAROIgQd, but with some oddities: AAAQvxb with 4 variable characters at the end.
naturally, this calls for an investigation! i would like to give a huge thanks here to Mimoja who helped me look into this, and gave me both a bunch of insights, and a whole bunch of pano ids to look at! here are the conclusions that we came to:
-
for any given location, the last 11 characters of pano ids of neighbouring panos are entirely sequential, with the note that the last character can only be A, Q, g or w[1]. for instance, starting from here, the last 11 characters of the panoid for each consecutive step is as follows:
AAAQrCy1TNw,AAAQrCy1TOA,AAAQrCy1TOA,AAAQrCy1TOQ,AAAQrCy1TOg,AAAQrCy1TOw,AAAQrCy1TPA, etc. -
for different locations, the last 11 characters of the pano id are almost certainly in order of release date. it's impossible to say for sure, since release dates are not public, but i am pretty confident: the ids are in an almost perfect chronological order of capture date - AAAQ3 is march 2017, AAAQ4 july-august, AAAQ5 august-november 2017, etc. however, there are a small handful of weird outliers (i.e. this 2018 pano (
AAAQrDCJNSQ) comes before this 2015 one (AAAQu3-8WWA) in the ordering), which is why i quite like the suggestion that they may have been assigned based on when they were released, rather than recorded. - it is not yet known whether the last 11 characters ever really skip anything. it turns out that Google has A LOT of panos, so it turns out that our combined datasets still have quite a few gaps - who knows what is out there that we don't know of! and trying random panos isn't exactly going to work since...
- ...the first 11 characters seem randomly generated? or at least there is no immediately obvious pattern to them. 266 random pano checks just to find one location seems a bit excessive!
- for the most part, the ids start at AAAQ and overflow into AAAR, but there are a small handful of exceptions, all of which begin with AAAAG (notice the extra A!). these exceptions were all captured between december 2013 and march 2014, which makes them some of the earliest tripods that we know of (certainly one of the earliest ones that follow this pattern) - see this file with the known AAAAG panos.
- it appears that google has adopted this pattern in late 2013 or early 2014, and tripod coverage captured before then is all fairly random. in particular, glebovski on the virtualstreets discord collected 50023 business tripods, only 1965 of which follow the AAA format. there appears to be a fairly clean pattern here - the vast majority of business tripods were taken from 2009 to mid-2013, none of which follow the format, while the few late stragglers (2014 and 2015, after which the programme has stopped) all seem to match the expected pattern.
- the AAA pattern does NOT guarantee that something is a tripod. this pano, for instance, ends in AAARGxe8Rew, which is consistent with our tripod pattern (remember, AAAR is something that exists in the wild!), but is decidedly normal car coverage.
sadly, the practical uses for this seem to be limited - the 11 random (or random-looking) letters kind of kill our chances of generating pano ids until there we find something, and it's only useful for tripods anyway. but i suppose you can infer a bit about release dates. and it was fun looking into it.
[1] this is because pano ids are a base64-encoded representation of 128-bit data (with no padding). you can read more about pano ids from Anna's blogpost!