Рассчитать градусы / минуты Размеры статической карты Google

Как определить ширину (в градусах и минутах) изображения Google Static Maps?

Например, если я запрашиваю статическую карту с центром -32 Lat 151 Long(Австралия Сидней) и значением увеличения 14, как я могу определить ширину возвращенного спутникового изображения?

http://maps.googleapis.com/maps/api/staticmap?center=-32,151&zoom=14&size=400x400&sensor=true

Какова будет реальная ширина и высота возвращаемого изображения?

Я знаю, что центр -32, 151 и уровень масштабирования 14. Может быть, zoom=14 представляет высоту 14000 метров? Если так, то я могу вычислить измерения реального мира, используя математику, но я не уверен, что это то, что означает "14".

Этот SO вопрос выглядел очень многообещающим, но, увы, ответов на них нет: несоответствие размеров статических карт Google

1 ответ

Решение

Если вас не интересуют измеренные расстояния [мили или км], а только сферические расстояния [градусы], расчет не составит труда.

При нулевом уровне масштабирования все 360° экватора укладывается в 256 пикселей. При увеличении 1 это 360÷2=180°. При увеличении 14 это 360 ÷ 214 = 0,021973° (приблизительно).

widthDeg = (elementWidthInPixels/256)*(360 / Math.pow(2,zoom))

Другие вопросы по тегам