Can anyone provide me with a link (or some details) on the actual ratio to "zoom level" figures for Google Maps?
e.g. Google Maps Level 13 = 1:20000
If you are designing a map you plan on overlaying over google maps or virtual earth and creating a tiling scheme then i think what you are looking for are the scales for each zoom level, use these:
Not that easy. Given the projection, the size of the tile pixels depends on the latitude of the area you're interested in. Then in terms of transforming tile pixel size in screen pixel size, it depends on the screen and the resolution the data is displayed, the dpi your screen is using.
To help you understand the maths (not a precise calculation, it's just for illustration):
There is such a table in the documentation of the Virtal Earth Tile System from Microsoft. But as said by GuillaumeC the values depends on the latitude and on the screen resolution. The table gives values as measured at the Equator and at a screen resolution of 96 dpi.
PS: Not sure of that, but the zoom levels by Microsoft might be shifted by 1 in comparison to the zoom levels by Google. But they definitivly use the same projection so that the values remain correct for Google.
Just did some calculations and got the following results:
Google Maps shows a 1km ruler (bottom left of the map) which is 90 pixels in length, at zoom level 13. Which means the following:
Assuming the screen resolution is 96 dpi or 36 dpcm, at zoom level 13 we have 0.4km (from 36/90) in 1cm, which yields map scale of 1:40,000 for a 96dpi screen.
For various operations on the screen the best is to take 90px as a basis, as all numbers will be round at all zoom levels, i.e.
and so on.
Note that this is an approximation that should work more or less fine on smaller scales rather than big ones.
(And Google likes round numbers in the end...)
Radius @ Equator 6,378,137 meters exact (WGS-84)
Circumference at Equator = 40,075,017 meters (2πr)
Zoom level 24 uses 2 to the 32 power (4,294,967,296) pixels at circumference.
Equatorial Circumference / 2 32 = .009330692 meters per pixel
Unit at Latitude = (Cosine of Latitude) X (Unit at Equator)
Zoom level doubles each increment.
1 foot (International) = 0.3048 meters
Well its not really a legitimate question to start with. Scale ratios are relative to printed documents not computer screens. What you need for these images to be used with any accuracy is to know the dimension of each pixel then scale the image according to whatever your overlaying it with.
So back 15-20 year ago someone took WGS-84 as base data. (note in a previous post someone used a value of 40,075,160 I've seen this in Wikipedia a few places and it's incorrect. The correct value is 40,075,017
They then took that and divided it by a full 32 bit integer. This is a logical choice as it yields global accuracy to about one centimeter which is plenty for aerial imagery. 32 bit integers are also efficient to store and process.
Why this is level 24 was chosen I don't know however as someone else here worked out 0 gets you down to one 256 pixel tile for the earth.
Now for an example of how to use the above data. Lets say I have an image at zoom level 20 (as zoomed as they currently let you get) Take 0.009330692 (Zoom 24 at equator) double it for zoom 23, again for zoom 22, again for zoom 21 and one last time for zoom 20. You should now have 0.149231071.
Now lets say our image is at latitude 45. Take the Cosine of that (0.707106781) and multiply it by our 0.149231071 and it will give you 0.105564729 meters. That is the length and height of one pixel from an image at latitude 45 at zoom level 20. If you screen capture a 1000 x 1000 pixel image of that area the dimension are 105.56 meters square. If you want feet divide that 0.3048
As for sources I essencial reversed engineer about 5 years ago from various bit of info and documentation I found on the web including Google and MS mapping support sites.
I have used this hundred of time and overlaying it with actually field survey data and its always been correct. Check it against any to the tables posted here and the numbers will match.
I found this response - written by a Google employee - this would probably be the most accurate one:
" This won't be accurate, because the resolution of a map with the mercator projection (like Google maps) is dependent on the latitude.
It's possible to calculate using this formula:
This is based on the assumption that the earth's radius is 6378137m. Which is the value we use :)"
BTW - I'm guessing that:
Straightforward authoritative correct answer:
it gives you the table above, entering the zoom level.
Try it live on jsfiddle.net
Because the question is only for Google MAPS, not EARTH, the OP doesn't care about 3D geometry. Google maps are ALREADY flattened so 1 pixel is always the same distance (in DEGREES, which is what concerns to a google map), here and in the ecuator as in the poles.
By the way, Did you realize that somewhere inside the first pixel row of a world's map, the scale is 1:1?
I calculated the scales for four zoom levels:
Zoom level | Scale 20 1:500 19 1:1000 18 1:2000 17 1:4000
It seems that the scale is doubled as the zoom level increased by one step. So, I hope the scale for the zoom level 16 will be 1:8000 and so on.