Высота пикселей в Google Картах по широте - PullRequest
0 голосов
/ 27 декабря 2011

На картах Google, чем ближе к полюсу, тем больше растягивается карта, и каждый пиксель карты отображает меньшее движение (асимметрично 0 на северном полюсе)

Я ищу формулу, чтобы соединить ширину пикселя в градусах с широтой (то есть расстояние в реальном мире, представленное пикселем на карте). У меня есть некоторые данные здесь для уровня масштабирования 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

Причина для этого заключается в том, что я хочу ввести пары широта / долгота и точно определить, в каком пикселе они будут расположены относительно 0,0

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Я могу ошибаться, но вы уверены, что эти точки имеют высоту пикселей?Они кажутся косинусом, который будет шириной пикселя, а не высотой.После небольшой тригонометрии высота пикселя изменяется по формуле:

Pixel height

, где R - радиус Земли, phi - широта, а h - высота пикселя в экваторе.Эта формула не соответствует вашим точкам, поэтому я спросил, была ли она вместо ширины.

В любом случае, если вам нужна такая точность, что вы не можете использовать аппроксимацию в предыдущем ответе, вы должны также рассмотреть переменную Rс широтой и даже с этим, я не думаю, что вы получите точный результат.

Обновление : Тогда формула будет косинус.Если вы хотите взять переменный радиус Земли, формула будет иметь вид:

Pixel width

, где R - радиус Земли, а d (0) - ширина вашего пикселя наэкватор.Вы можете использовать эту формулу для R, полагая, что земной шар является эллипсоидом:

Earth radius

с a = 6378,1 (экватор) и b = 6356,8 (полюса)

0 голосов
/ 27 декабря 2011

Хотя я не уверен, что означает «высота пикселя», график данных (показанный ниже), кажется, соответствует уравнению

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

с коэффициентами

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

Общий подход к нахождению уравнения заключается в том, чтобы сначала построить график данных, затем выдвинуть гипотезу о типе функции, а затем выполнить регрессию, чтобы найти коэффициенты.

data plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...