Клуб API Карт

Сколько пикселей в градусе

Пост в архиве.

Добрый день.

Не могу найти формулу для расчета количества пикселей в градусе на определенной широте или долготе при определенном зуме.

Нашел что-то похожее:

math.cos(lat) * 180 / math.pow(2, zoom + 8) - работет Оочень относительно.

Подскажите в каком направлении копать или где взять формулы.

1 комментарий
Sergey Konstantinov
28 января 2016, 05:23

Как-то так: берёте точки (long, lat) и (long, lat + 1), переводите в пиксели и считаете разницу по y:

var p1 = new YMaps.GeoPoint(long, lat),

     p2 = new YMaps.GeoPoint(long, lat + 1),

     geoPointToPixels = function (point, map) {

          return map.tileCoordinates.scale(

              map.coordSystem.fromCoordPoint(point),

              map.coordSystem.getMaxZoom(),

              map.getZoom()

          );

     };

 

alert(geoPointToPixels(p2).getY() - geoPointToPixels(p1).getY());

 

Для x аналогично.