Posts Tagged api
Google street view dissection
I felt like working out how google street view does its stuff today – so here goes!
Here’s the image of the street view interface we’re dealing with
Time to open up wireshark and see how it gets these images!
Looks like there’s lots of tile requests to the server at cbk2.google.com
GET /cbk?output=tile&zoom=3&x=4&y=1&cb_client=maps_sv&fover=2&onerr=3&v=4&panoid=0JTH3YvHt93HUiWezPIRhgHTTP/1.1\r\n
Pats of interest are the zoom, x, y, and panoid tags. I presume x and y are the tile locations in the entire panorama and zoom is the zoom level (0 to 3 in this case). panoid must be a specific identifier for the street view image you’re looking at.
putting this into a browser retrieves this tile
click image to go to the google version
Nice! now for a play – Lets change the x and y values to (0,0)
mmm.. don’t know where that is. Lets look down a little at (0,1)
ahh! There’s something interesting. Still, 0 on the x axis doesn’t seem to be “forward”. Lets look at the tile to the left which is at (6,1)
That explains it… Looks like there’s some overlap at the join. And – taking a closer look at this tile shows that the join is actually on the “back” of the image (as it was captured) because there’s a one way arrow on the ground. Perhaps tile 0 is actually aligned to west? Not sure on this one.
Ok, time to play with zoom. Here’s zoom=4 at (0,0)
A value of 4 doesn’t seem to work. It just gives a black tile. I think that’s because this area (in Perth WA) was only covered at a fairly low resolution this time around (it looks like they used ladybug2 cameras for this pass).
Well, here’s zoom = 2 at (0,0) then
That’s more like it. Interestingly, the join point on the x axis is still the same (i.e. the left of tile 0).
Now for zoom =1
Just for fun I stitched all the zoom=1 tiles to generate this
Definitely looks like a Equirectangular_Projection
Out of interest I thought I’d also estimate the total size for each full sized image to be about 750kB. This assumes a tile size of 32kB, 21 full tiles and 7 quarter tiles at the bottom. Say that’s 1MB per image including the lower scales, multiplied by the number of streetview images over the world…. equals a lot!
Recent Comments