paullb
paullb

Reputation: 4335

Google Maps pixel height by latitude

In Google maps, the closer one gets to the pole, the more strechted out the map gets and sp each pixel of map represents less movment (asymtotically to 0 at the north pole)

I'm looking for a formula to connect the width of a pixel in degrees to the latitute (i.e. the real world distance represented by a pixel on the map). I have some data points here for zoom level 12 (IIRC)

Lat Width
0   0.703107352
4.214943141 0.701522096
11.86735091 0.688949038
21.28937436 0.656590105
30.14512718 0.60989762
35.46066995 0.574739011
39.90973623 0.541457085
41.5085773  0.528679228
44.08758503 0.507194173
47.04018214 0.481321842
48.45835188 0.468430215
51.17934298 0.442887842
63.23362741 0.318394373
72.81607372 0.208953319
80.05804956 0.122131316
90  0

The reason for doing this is I want to input lat/lng pairs and sort out exactly what pixel they would be located with respect to 0,0

Upvotes: 0

Views: 559

Answers (2)

curial
curial

Reputation: 514

I might be wrong but are you sure thos points are the pixel height? They seem to be a cosine which would be the pixel width not the height. After a little trigonometry the pixel height adjusts to the formula:

Pixel height

where R is the earth radius, phi is the latitude and h is the height of a pixel in the equator. This formula does not adjust to your points, that's why I asked if it was the width instead.

Anyway if you want so much precision that you cannot use the approximation in the previous answer you should also consider the R variable with the latitude and even with that I don't think you'll get the exact result.

Update: Then the formula would be a cosine. If you want to take the variable radius of the earth the formula would be:

Pixel width

where R is the radius of the earth and d(0) is your pixel width at the equator. You may use this formula for R assuming the eearth to be an ellipsoid:

Earth radius

with a = 6378.1 (equator) and b = 6356.8 (poles)

Upvotes: 1

Abhinav Sarkar
Abhinav Sarkar

Reputation: 23812

While I am not sure what "height of a pixel" means, the plot of data (shown below) seems to fit the equation

y = a + bx + cx^2 + dx^3 where y = height, x = latitude

with coefficients

a =  7.0240278979641990E-01
b =  3.7784208874521786E-04
c = -1.2602864112736206E-04
d =  3.8304225582846095E-07

The general approach to find the equation is to first plot the data, then hypothesize the type of function, and then do a regression to find the coefficients.

data plot

Upvotes: 0

Related Questions