Радиус статической карты Google для увеличения

Я разрабатываю веб-сервис на PHP который получает широту, долготу и радиус в километрах и генерирует статическую карту google .

Также я показываю все точки из моей базы данных в этом радиусе.

Мой вопрос заключается в том, как я могу скрывать свой radius в параметре zoom Google, чтобы убедиться, что все точки видны на карте?

что-то вроде: http://maps.googleapis.com/maps/api/staticmap?center=New+York,NY&[*THIS PARAMETER*zoom=13]&size=600x300&markers.......

Как указано в Документах Google Maps :

Потому что основная плитка Google Maps от Mercator составляет 256 x 256 пикселей.
Также обратите внимание, что каждый уровень масштабирования, карта имеет 2 п плитки.

Это означает, что в zoomLevel 2 пиксели в любом направлении карты = 256 * 2² = 1024px.

Принимая во внимание, что земля имеет периметр ~ 40 000 километров, при масштабировании 0 каждый пиксель ~ = 40 000 км / 256 = 156,25 км
При масштабировании 9 пикселы составляют 131072:
1px = 40 000 км / 131072 = 0,305 км … и так далее.

Если ваше изображение 640 x 640 px, и вы используете зум 9, это означает, что вы будете покрывать ~ 640 * 0.305 ~ = 195 км. Таким образом, ваш радиус составляет около 100 км.
Каждый раз, когда вы увеличиваете ++, радиус равен половине.

Если вы используете масштаб 15 (1px = 0.00478km), ваше изображение будет охватывать ~ 3 км в ширину (радиус 1,5 км).

Учтите, что по мере продвижения дальше на север или на юг реальное расстояние меньше, так как искажение больше.

Вы можете использовать в качестве параметра что-то вроде zoom = Floor (log 2 (EarthP * 2 PixMap / (радиус 256 *))).

  • EarthP = земной периметр на этой широте (в км)
  • PixMap = пиксели отображаемой карты
  • радиус = радиус, который вы хотите отобразить на изображении (в км)
  • log 2 = логарифм в базе 2

примечание: для преобразования журнала 2 в обычный журнал просто выполните следующее:
Этаж ((журнал (EarthP * 2 PixMap / (радиус 256 *))) / журнал 2)

Ссылка на логарифмы в Википедии

Посмотрите на LatLngBounds и метод map.fitBounds … Google maps api