Есть образец: http://rodlex.narod.ru/ex
В нем, при изменении (смещении, зум или перестановка метки) динамически меняется url - следовательно создается прямая ссылка на нужный кусок карты.
Прошу помочь в настройке вывода данных в урл. в 2,0
Кусок кода в имеющемся на 1.1:
YMaps.Events.observe(map, map.Events.Click, function (map, e) {
var coord = e.getGeoPoint(),
html = '<div style="text-align:center; width: 100px;"><strong>Отмечено</strong></div>';
placemark.setGeoPoint(coord);
placemark.setBalloonContent(html);
placemark.openBalloon(
}
// Динамически формируем урл
YMaps.Events.observe(map, [map.Events.Update, map.Events.MoveEnd, map.Events.ChangeType], setUrlParams);
YMaps.Events.observe(placemark, placemark.Events.PositionChange, setUrlParams);
// Функция для формирования параметров в URL'е
function setUrlParams(obj) {
// Включаем установку параметров после загрузки всего скрипта
if (!flagLoad) {
return;
}
document.location.hash = '#ll=' + map.getCenter().toString() +
'&z=' + map.getZoom() +
'&mt=' + map.getType().getLayers().toString() +
'&p=' + placemark.getGeoPoint().toString(
}
var hash = document.location.hash;
if (hash) { // Если строка параметров определена
var hash = hash.substr(1, hash.length - 1).split('&'), // Отрезаем первый символ "#" и
// разбиваем строку на подстроки параметр=значение
params = {}; // Объект будущих параметров
for (var i = 0, l = hash.length, param; i < l; i++) {
param = hash[i].split('='); // Разбиваем параметр на имя и значение
if (param[0] && param[1]) {
params[param[0]] = param[1];
}
}
// Если в урле заданы необходимые параметры
if (params.ll && params.z && params.mt && params.p) {
// Определяем тип карты
var mapType = YMaps.MapType.PMAP;
switch (params.mt) {
case 'sat':
mapType = YMaps.MapType.SATELLITE;
break;
case 'sat,skl':
mapType = YMaps.MapType.HYBRID;
break;
}
// Центрируем карту в нужном месте
map.setCenter(YMaps.GeoPoint.fromString(params.ll) , params.z, mapType);
// Устанавливаем маркер в нужную позицию
placemark.setGeoPoint(YMaps.GeoPoint.fromString(pa rams.p)
}
}