lookaround-map is a web app for viewing Apple Look Around panoramas on any platform, using reverse-engineered requests to Apple's internal Maps API.
Please don't make automated requests against prod. Check if my Python library streetlevel satisfies your usecase, and if not, set up a local instance of the server to make requests against instead.
The panorama viewer can be embedded into another web page. Check out the sample code here.
git clone https://github.com/sk-zk/lookaround-map.git --recursive
cd lookaround-map
pip install -r requirements.txt
npm i --global rollup
npm i
rollup -c
flask run
For browsers which don't natively support HEIC (which is every browser except Safari 17 or higher), the panorama faces must be converted to a supported format before sending them to the client. To do so, one of these three libraries can be used. Simply install the one you like and it will be selected automatically.
heic2rgb can also remux the HEVC bitstream of the image to MP4 for browsers which don't support HEIC, but do support HEVC.
VMP4
format. The general structure of the format has been decoded,
but the actual content of the individual sections has not, and a quick glance at Ghidra's decompiler output for the parsing functions makes me
put this one in the "let's get back to this in another year or two" category./t/<face>/<zoom>
, which returns the pano faces as HEIC,
but there are two others: /m/<zoom>
and /mt/7
, in a custom container format starting with the magic string MCP4
. These files contain the mesh,
compressed with Edgebreaker. I can decode the CLERS string, but I have not yet been able to make sense of how vertices are encoded in this format.