Клуб API Карт

как жить без map.moveBy()?

skier2006
18 мая 2012, 11:34

Как проще всего эмулировать работу map.moveBy() в api 2.0

(читал help у карты теперь нет метода moveBy(). Я плакал...)

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

Спокойствие, только спокойствие!

var currentPixelCenter = map.getGlobalPixelCenter(),

     offset = [100, 150];

map.setGlobalPixelCenter([currentPixelCenter[0] + offset[0], currentPixelCenter[1] + offset[1]]);

Ну почему простые методы в API 2.0 стали такими неочевидными,

продолжаю плакать...:)

А вам большое спасибо! Шоколадка++.

А в чём сложность? Есть методы - получить центр карты в пикселах, задать центр карты в пикселах. Чем это сложнее метода moveBy?

Если нет для вас сложностей, то окажите мне вспоможение, а именно: был у меня код для старого api

 

 if (SavePt != null)
   map.moveBy(new YMaps.Point(map.converter.coordinatesToLocalPixels(SavePt).x - x,map.converter.coordinatesToClientPixels(SavePt).y - y), true);

как его переписать для нового api, учитываая что

1) moveby - работал замечательно.

2) SavePt - это гео коор-ты некой сохраненной точки

3) След. код работает не корректно, т.е. неправильно смещает

карту.

    if (SavePt != null)
     {
 var pt = map.options.get(''projection'').toGlobalPixels([SavePt[Lng], SavePt[Lat]], map.getZoom());
   offset = [x, y];
   map.setGlobalPixelCenter([pt[0] - offset[0], pt[1] - offset[1]], map.getZoom());
    }