1. при событии boundschange пишете в куки зум и центр. map.events.add('boundschange', function (e) { $.cookie("center", e.get('newCenter')); $.cookie("zoom", e.get('newZoom')); }, this);
2. при инициализации карты просто проверяете, есть ли в куках значения. Можно сделать это и в php и в js. В js будет как-то так: var myCenter = $.cookie("center") != null ? $.cookie("center").split(',') : [37, 55], myZoom = $.cookie("zoom") || 12;
var map = new ymaps.Map("mapContainer", { center: myCenter, zoom: myZoom })
Да, верно. Карта должна принимать в качестве центра числа. Нужно так: var myCenter, myZoom = $.cookie("zoom") && parseInt($.cookie("zoom")) || 12; if ($.cookie("center")) { myCenter = $.cookie("center").split(','); myCenter = [parseFloat(myCenter[0]), parseFloat(myCenter[1])]; } else { myCenter = [55, 37]; }