Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
- <style type="text/css">
- .popup--map .js-russia-map, .popup--map .js-regions-map {
- position: relative;
- height: 360px;
- width: calc(100% + 79px);
- margin-left: -48px;
- margin-top: 34px;
- }
- </style>
- <script>
- let map_script_loaded = false;
- var region_map_array=[{'coord':['55.0302','82.9204'],'city':'Новосибирск'},{'coord':['56.4847','84.9482'],'city':'Томск'},{'coord':['53.3481','83.7799'],'city':'Барнаул'},{'coord':['51.8345','107.5846'],'city':'Улан-Удэ'},{'coord':['52.034','113.4994'],'city':'Чита'},{'coord':['52.2864','104.2807'],'city':'Иркутск'},{'coord':['56.0106','92.8525'],'city':'Красноярск'},{'coord':['55.355','86.0873'],'city':'Кемерово'},{'coord':['55.4416','65.3443'],'city':'Курган'},{'coord':['56.087','63.6297'],'city':'Шадринск'},{'coord':['54.9893','73.3682'],'city':'Омск'},{'coord':['43.1151','131.8853'],'city':'Владивосток'},{'coord':['46.9592','142.738'],'city':'Южно-Сахалинск'},{'coord':['56.8386','60.6055'],'city':'Екатеринбург'},{'coord':['56.4149','61.9187'],'city':'Каменск-Уральский'},{'coord':['57.9076','59.9722'],'city':'Нижний Тагил'},{'coord':['60.7329','77.604'],'city':'Стрежевой'},{'coord':['56.1106','69.4796'],'city':'Ишим'},{'coord':['58.2017','68.2538'],'city':'Тобольск'},{'coord':['57.153','65.5343'],'city':'Тюмень'},{'coord':['48.4802','135.0719'],'city':'Хабаровск'},{'coord':['62.2639','74.4829'],'city':'Когалым'},{'coord':['61.2537','75.1807'],'city':'Лангепас'},{'coord':['61.0318','76.1025'],'city':'Мегион'},{'coord':['61.0882','72.6163'],'city':'Нефтеюганск'},{'coord':['60.9397','76.5696'],'city':'Нижневартовск'},{'coord':['60.7586','72.8365'],'city':'Пыть-Ях'},{'coord':['62.1343','77.4584'],'city':'Радужный'},{'coord':['61.3707','63.5668'],'city':'Советский'},{'coord':['61.2541','73.3962'],'city':'Сургут'},{'coord':['61.0032','69.0189'],'city':'Ханты-Мансийск'},{'coord':['61.3149','63.332'],'city':'Югорск'},{'coord':['55.16','61.4026'],'city':'Челябинск'},{'coord':['62.0281','129.7326'],'city':'Якутск'},{'coord':['64.4326','76.5005'],'city':'Губкинский'},{'coord':['63.7953','74.4944'],'city':'Муравленко'},{'coord':['65.5359','72.5313'],'city':'Надым'},{'coord':['66.084','76.681'],'city':'Новый Уренгой'},{'coord':['63.2018','75.451'],'city':'Ноябрьск'},{'coord':['64.912449487632','77.761239661377'],'city':'Тарко-Сале'},{'coord':['65.851890203093','74.497178232565'],'city':'Пангоды'},{'coord':['61.609039336446','73.719444664062'],'city':'Федоровский'},{'coord':['61.619952857428','72.158766871597'],'city':'Лянтор'},{'coord':['60.12957660075','64.803009455322'],'city':'Урай'},{'coord':['62.143322732205','65.429367619141'],'city':'Нягань '},{'coord':['62.535042001514','65.621736177246'],'city':'Приобье'},{'coord':['61.197619268275','62.856633550293'],'city':'Пионерский'},{'coord':['59.139852010658','68.893393481445'],'city':'Уват'},{'coord':['59.603549182927','60.582555936523'],'city':'Серов'},{'coord':['59.760149351174','60.19667369043'],'city':'Краснотурьинск'},{'coord':['60.155647135912','59.951941198242'],'city':'Североуральск'},{'coord':['56.897896249665','59.960649481445'],'city':'Первоуральск'},{'coord':['58.707091815616','59.498396227539'],'city':'Качканар'}]
- function ymaps_regions() {
- if(!map_script_loaded) {
- map_script_loaded = true;
- ymaps.ready(init);
- var regions_map,
- placemark;
- function init() {
- var MyHintContentLayout = ymaps.templateLayoutFactory.createClass('<div class="ym-hint" style="background:#f4f4f4;font-size:14px;">$[properties.hintContent]</div>');
- var getPointData = function (city,i) {
- return {
- "city": city,
- balloonContentHeader: city,
- placemarkId: i,
- hintContent: city,
- }
- };
- // Создаем собственный макет с информацией о выбранном геообъекте.
- var customBalloonContentLayout = ymaps.templateLayoutFactory.createClass([
- '<ul class=list style="max-height:200px;overflow-y: scroll;">',
- // Выводим в цикле список всех геообъектов.
- '{% for geoObject in properties.geoObjects %}',
- '<li><span class="list_item">{{ geoObject.properties.balloonContentHeader|raw }}</span></li>',
- '{% endfor %}',
- '</ul>'
- ].join('')),
- default_mark_icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAfUlEQVQoU4WP0Q2CQBBE3ywFYAmWAIWgfqllnJVAGXxiJVwJ2AEW4K25SEiMRvdv8iaZfQI4nMP2kWglqpzdiYVxGfpuUoYpMSI2Ga7nzGbUak5hEOzf4BIcrtodw4wovxWA6WfB4fZ/Ynkyfsw4dzMqrZpOBy9NIBYiZM0nEOMs6e7Awa8AAAAASUVORK5CYII=',
- hovered_mark_icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAhElEQVQoU4WPwQ2CQBRE3+xy1xIsARtQOzB2Agl9SCeKFdiBWwJ2gHd2vwHkYDTh3ybvJfNHAIfisjHvz2D5kEFBMZb3+tRqgu6BtJ7g58w6xbTVrrpdBccvODvQaF81HWj1T8CsXRB4LleMT2Yu/NbYS33KNc9Mma9ljDNNBNfHYpj5Br6VNrWDAiurAAAAAElFTkSuQmCC'
- var regions_map = new ymaps.Map("js-regions-map", {
- center: [61.9191,98.9391],
- zoom: 2.8,
- controls: ["zoomControl", "fullscreenControl"]
- }),
- clusterer = new ymaps.Clusterer({
- preset: 'islands#darkBlueClusterIcons',
- groupByCoordinates: false,
- clusterHideIconOnBalloonOpen: false,
- geoObjectHideIconOnBalloonOpen: false,
- clusterBalloonContentLayout: customBalloonContentLayout
- });
- var geo_objects = [];
- for(var i=0, len = region_map_array.length; i < len; i++) {
- var coord = region_map_array[i]["coord"];
- geo_objects[i] = new ymaps.Placemark(coord, getPointData(region_map_array[i]["city"],i), {
- iconLayout: 'default#image',
- iconImageHref: default_mark_icon,
- iconImageSize: [10, 10],
- iconImageOffset: [0, 0],
- iconContentOffset: [0, 0],
- hintContentLayout: MyHintContentLayout
- });
- geo_objects[i].events.add('mouseenter', function (e) {
- e.get('target').options.set('iconImageHref', hovered_mark_icon);
- });
- geo_objects[i].events.add('mouseleave', function (e) {
- e.get('target').options.set('iconImageHref', default_mark_icon);
- });
- }
- clusterer.options.set({
- gridSize: 80,
- clusterDisableClickZoom: true
- });
- clusterer.add(geo_objects);
- regions_map.geoObjects.add(clusterer);
- // regions_map.events.add('mouseup', function (e) {
- // regions_map.hint.open(e.get('coordPosition'), 'Щелк!');
- // });
- if(!0) {
- var previous_region;
- ymaps.regions.load('RU', {
- lang: 'ru',
- quality: 3
- }).then(function (result) {
- var regions = result.geoObjects; // ссылка на коллекцию GeoObjectCollection
- regions_map.geoObjects.add(regions);
- // Задание стиля для коллекции регионов
- regions.options.set('fillColor', '#e4e4e4');
- regions.options.set('strokeColor', '#ffffff');
- // Обрабока события входа курсора в регион
- result.geoObjects.events.add('mouseenter', function (e) {
- var region = e.get('target');
- console.log(region.properties.get('name'))
- if(previous_region !== region) {
- if(typeof previous_region !== 'undefined') {
- previous_region.options.set('fillColor', '#e4e4e4');
- }
- previous_region = e.get('target');
- region.properties.set("hintContent","<div class='ym-hint'><b>"+region.properties.get('name')+"</b></div>");
- region.options.set('fillColor', '#7CA3D0');
- }
- });
- result.geoObjects.events.add('click', function (e) {
- var region = e.get('target');
- previous_region.hint.close(true)
- region.hint.open()
- })
- });
- }
- }
- }
- }
- ymaps_regions();
- </script>
- <div id="popup-map" class="popup popup--advantages popup--map mfp-hide">
- <div class="js-regions-map" id="js-regions-map" style=""></div>
- </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement