Клуб API Карт

Коэффициенты масштабирования Yandex и Google карт.

nodkz
3 августа 2010, 15:03

Занимаюсь кластеризацией объектов в группы на стороне сервера. Для того чтобы при разных зумах карты группы или распадались или собирались. 

Возникли пара вопросов, помогите кто чем может ;)  

1) Необходимо знать сколько градусов (широты и долготы) влазит в 500 пикселей яндекс карты для каждого зума от 1 до 17?

2) Может у кого есть сопоставленные коэффициенты согласно коэффициентов зума яндекс и гугл карт?

Например:  ya.zoom.11 = gg.zoom.12 * K  (вот интересует именно K, для разных пар зумов обеих карт)

Спасибо!

4 комментария
Подписаться на комментарии к посту
поправочка: по первому вопросу, нужна формула расчета широты и долготы согласно зума яндекса
(а то на экваторе, например поместиться 2 градуса широты, а ближе к полюсу все 22 градуса)
Разница между проекцикцией Яндекса и Гугла несущественная. Обратите внимание, что по горизонтали и вертикали одному пикселю соответствует разное количество градусов.

Длина экватора в пикселях - 256 * Math.pow(2, zoom) = Math.pow(2, zoom + 8). Соответственно, на экваторе на один пиксель приходится 360 / Math.pow(2, zoom + 8) градусов.

На произвольной широте lat по горизонтальной оси число градусов на пиксель то же, а для вертикальной оси нужно вводить поправку на широту согласно формулам проекции Меркатора - домножить на косинус широты


Так как по долготе (горизонтали) на 256 * (2 ^ Z) пикселей приходится 360 градусов (окружность экватора), а по широте (вертикали) на ту же величину пикселей приходится 180 градусов (90 на север и 90 на юг), то при расчете числа градусов широты, приходящихся на один пиксель Яндекс.Карт на заданной широте L, видимо, верной будет такая формула: cos ( L ) * 180 / 2 ^ (Z+8).