/* regionInfo - массив с данными по картам регионов первичный ключ - некий идентификатор региона (название, уникальный id и т.д.) для каждого региона определены: 'lat': широта центральной точки карты 'lng': долгота центральной точки карты В общем случае, координаты центра карты и расположения маркера могут не совпадать, но мы предполагаем, что карта содержит всю область, а маркер расположен в ее "геометрическом" центре, так что для позиционирования карты и размещения маркера используется одни и те же координаты. 'zoom': масштаб карты данного региона Надо подбирать значение zoom так, чтоб в карту влезала вся область. Например, при zoom: 4 - почти целиком влезет Австалия. Брянская область вмещается при zoom: 7. 'title': название региона для tooltip'а на маркере 'balloon': html-код всплывающей подсказки Если структура подразделов для всех областей будет идентична, достато будет для каждой области менять только ее название в тэге

и ставить соответствующие ссылки в . В таком случае код можно несколько упростить вынеся html в отдельную функцию, которой передавать только куски URL и название региона. */ /* var regionInfo = { 'BRIANSK': { 'lat': 53.021392, 'lng': 33.31604, 'zoom': 7, 'title': 'Брянская область', 'balloon': '
'+ '

Брянская область

'+ ''+ '
'+ '
' } , 'KURG': { 'lat': 55.45000001, 'lng': 65.33333334333, 'zoom': 7, 'title': 'Курганская область', 'balloon': '' } */ /* другие регионы , 'regionIdOrName': { 'lat': широта центральной точки карты, 'lng': долгота центральной точки карты, 'zoom': масштаб карты данного региона, 'title': название региона, 'balloon': html-код всплывающей подсказки } , 'regionIdOrName2': { ... } и т.д. }; */ /* initYandexMap() - инициализация и вывод карты текущий регион определен значением переменной currentRegion, см. исходный код страницы. там дожно быть */ function initYandexMap() { var map = new ymaps.Map('region_map', { zoom: regionInfo[currentRegion].zoom, center: [ regionInfo[currentRegion].lat, regionInfo[currentRegion].lng ], type: 'yandex#map', controls: ['zoomControl', 'fullscreenControl'] }, { }); for (var regCode in regionInfo) { var reg = regionInfo[regCode]; var point = [reg.lat, reg.lng]; map.geoObjects.add(new ymaps.Placemark(point, { hintContent: reg.title, //balloonContent: null balloonContentHeader: reg.balloonHeader, balloonContentBody: reg.balloonBody }, { preset: currentRegion == regCode ? 'islands#redDotIcon' : 'islands#dotIcon' })); } } $(function () { if ($('#region_map_wrapper').length) { if (typeof (ymaps) != "undefined") { ymaps.ready(initYandexMap); } else { $('#region_map_wrapper').remove(); } } });