Клуб API Карт

Смещение центра карты относительно внешнего контейнера

Александр Домбровский
10 июня 2013, 14:04

Добрый день! У меня на сайте есть карта, она растянута на весь экран, поверх этой карты находится панель для поиска и хедер сайта. Примерно ШхВ=900pxх500px. Как мне сделать центрирование карты не по реальному центру, а со смещением равным (высота панели - реальный центр)? Нашел функцию getGlobalPixelCenter, но не совсем ясно что за данные она возвращает и относительно чего эти координаты.

3 комментария
Подписаться на комментарии к посту

возвращает центр карты в пикселях относительно полного пиксельного размера карты на данном зуме. 

Просто получаете эти данные, вычитаете / прибавляете куда сколько нужно и устанавливаете обратно. 

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Map.xml#setGlobalPixelCenter

Александр Домбровский
10 июня 2013, 16:54

А координаты относительно чего возвращает getGlobalPixelCenter? у меня там значения примерно 9000 на 5000

относительно верней левой точки мира на текущем зуме.

 

 

В результате проецирования мы получаем отображение географической карты на бесконечную пиксельную плоскость. Карта в браузере показывает небольшую часть этой плоскости (т. н. область картографирования).

Для того, чтобы с картой было удобно работать, вводится понятие коэффициента (уровня) масштабирования. На нулевом уровне весь «мир» отображается на область размером 256х256 пикселей. При увеличении коэффициента масштабирования на единицу размеры «мира» увеличиваются ровно в 2 раза и, следовательно, для уровня масштабирования z составляют 2z+8x2z+8 пикселей.

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

http://api.yandex.ru/maps/doc/theory/concepts/coordinates.xml