Compare commits
10 Commits
6dc97a8b1d
...
c6573a824b
| Author | SHA1 | Date | |
|---|---|---|---|
| c6573a824b | |||
| abfde8d402 | |||
| 64f83191df | |||
| fcb42f5310 | |||
| e6b06a16ab | |||
| 1f58887074 | |||
| 182c8da3fe | |||
| 909d433dfd | |||
| d1bf01eafc | |||
| 9f813397b1 |
@@ -1 +1,5 @@
|
|||||||
.idea
|
.idea
|
||||||
|
|
||||||
|
# Локальные настройки и служебные файлы Codex/агентов
|
||||||
|
.codex/
|
||||||
|
.agents/
|
||||||
|
|||||||
@@ -4155,6 +4155,84 @@ body.menu-open{overflow:hidden}
|
|||||||
z-index:8;
|
z-index:8;
|
||||||
pointer-events:none;
|
pointer-events:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Карта маршрута на OpenStreetMap в палитре сайта. */
|
||||||
|
.route-map-frame{background:#153b55;position:relative}
|
||||||
|
.route-map-frame #irkutsk-route-map{width:100%;height:100%;min-height:inherit;background:#153b55}
|
||||||
|
.route-map-frame .leaflet-tile-pane{filter:saturate(.72) sepia(.18) hue-rotate(158deg) brightness(.78) contrast(1.04)}
|
||||||
|
.route-map-frame .leaflet-control-zoom{border:1px solid rgba(216,166,83,.72)!important;border-radius:12px!important;overflow:hidden;box-shadow:0 8px 20px rgba(5,22,41,.28)!important}
|
||||||
|
.route-map-frame .leaflet-control-zoom a{width:34px;height:34px;line-height:34px;color:#f0d08c;background:#102d48;border-color:rgba(216,166,83,.45);font-family:Arial,sans-serif}
|
||||||
|
.route-map-frame .leaflet-control-zoom a:hover{color:#102d48;background:#f0d08c}
|
||||||
|
.route-map-frame .leaflet-control-attribution{color:#d8e1d7;background:rgba(8,31,52,.78);font-size:10px}
|
||||||
|
.route-map-frame .leaflet-control-attribution a{color:#f0d08c}
|
||||||
|
.route-map-frame .leaflet-attribution-flag{display:none!important}
|
||||||
|
.route-marker-wrap{background:transparent;border:0}
|
||||||
|
.route-marker{display:grid;place-items:center;width:32px;height:32px;border:2px solid #f0d08c;border-radius:50%;background:#0c2c49;color:#f7e4bb;font:700 13px/1 Arial,sans-serif;box-shadow:0 3px 10px rgba(4,20,37,.4)}
|
||||||
|
.route-map-frame .leaflet-popup-content-wrapper,.route-map-frame .leaflet-popup-tip{background:#102d48;color:#f5ead7}
|
||||||
|
.route-map-frame .leaflet-popup-content{margin:13px 16px;font:13px/1.4 Arial,sans-serif}
|
||||||
|
.route-map-frame .leaflet-popup-content strong{color:#f0d08c}
|
||||||
|
.route-map-frame .leaflet-popup-close-button{color:#f0d08c!important}
|
||||||
|
|
||||||
|
@media print{
|
||||||
|
@page{size:A4;margin:14mm 13mm}
|
||||||
|
body{background:#fff;color:#1d2d38;font:11pt/1.45 Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
|
||||||
|
body>*{display:none!important}
|
||||||
|
body>.route-wrap,body>.architecture{display:block!important;background:#fff!important;color:#1d2d38!important}
|
||||||
|
.route-wrap{break-after:page}
|
||||||
|
.route-wrap .page,.architecture .page{max-width:none;padding:0}
|
||||||
|
.route-wrap .page-title{display:block;margin:0 0 7mm}
|
||||||
|
.route-wrap .page-title h3{font-size:20pt;color:#102d48;margin:0 0 3mm}
|
||||||
|
.route-wrap .page-title p{font-size:10pt;color:#4d5a5f;max-width:none}
|
||||||
|
.map-card{display:block!important;padding:0;background:#fff;border:0;box-shadow:none}
|
||||||
|
.route-map-frame{height:175mm;min-height:0;border:1px solid #c6a66c;border-radius:5mm;overflow:hidden}
|
||||||
|
.route-map-frame #irkutsk-route-map{height:100%;min-height:0}
|
||||||
|
.route-map-frame .leaflet-tile-pane{filter:none}
|
||||||
|
.route-map-frame .leaflet-control-zoom,.route-map-frame .leaflet-control-attribution{display:none}
|
||||||
|
.map-note{font-size:8pt;color:#52646b;padding:3mm 0 0}
|
||||||
|
.architecture .page-title{display:block;margin:0 0 6mm}
|
||||||
|
.architecture .page-title h3{font-size:20pt;color:#102d48;margin:0 0 3mm}
|
||||||
|
.architecture .page-title p,.arch-intro{font-size:10pt;color:#4d5a5f;max-width:none}
|
||||||
|
.window-ornament{display:none!important}
|
||||||
|
.arch-list{display:block}
|
||||||
|
.arch-card,.arch-card:nth-child(even){display:grid;grid-template-columns:30mm 1fr;min-height:0;margin:0;padding:4mm 0;border:0;border-bottom:1px solid #d7c5ae;border-radius:0;box-shadow:none;break-inside:avoid;background:#fff}
|
||||||
|
.arch-photo,.arch-card:nth-child(even) .arch-photo{display:block;order:0;min-height:30mm;height:30mm;background-position:center;background-size:cover;border-radius:3mm;align-self:start}
|
||||||
|
.arch-photo:after{display:none}
|
||||||
|
.arch-num{left:2mm;top:2mm;width:9mm;height:9mm;border:1px solid #f0d08c;background:#102d48;color:#f0d08c;font-size:9pt}
|
||||||
|
.arch-text{padding:0 0 0 5mm;display:block}
|
||||||
|
.address{font-size:8pt;margin:0 0 1mm;color:#9a6c27}
|
||||||
|
.arch-text h4{font-size:13pt;line-height:1.15;margin:0 0 2mm;color:#102d48}
|
||||||
|
.arch-text p{font-size:9.5pt;line-height:1.4;margin:0 0 2mm;color:#35464d}
|
||||||
|
.fact{font-size:8.5pt;line-height:1.35;margin:0;padding:0;border:0;color:#59686b}
|
||||||
|
.fact b{color:#102d48}
|
||||||
|
}
|
||||||
|
.map-note{display:flex;align-items:center;gap:10px;padding:12px 4px 1px;color:#6d7f82;font-size:12px;letter-spacing:.04em}
|
||||||
|
.map-note-line{display:block;width:28px;height:3px;border-radius:4px;background:#d8a653;box-shadow:0 0 0 1px rgba(216,166,83,.12)}
|
||||||
|
|
||||||
|
/* Простая версия шапки: оставляем только фон, логотип и меню. */
|
||||||
|
.baikal-header{min-height:640px!important;padding-top:82px!important}
|
||||||
|
.baikal-header .site-bubbles,
|
||||||
|
.baikal-header .water-animation-layer,
|
||||||
|
.baikal-header .v25-scene-art,
|
||||||
|
.baikal-header .v25-flow-lines,
|
||||||
|
.baikal-header .v25-moon-ring,
|
||||||
|
.baikal-header .carved-left,
|
||||||
|
.baikal-header .carved-corner,
|
||||||
|
.baikal-header .baikal-landscape,
|
||||||
|
.baikal-header .baikal-waves,
|
||||||
|
.baikal-header .hero-nerpa{display:none!important}
|
||||||
|
.baikal-nav-wrap{height:82px!important;border-bottom:1px solid rgba(247,235,220,.18)!important;background:rgba(7,36,66,.88)!important;backdrop-filter:blur(8px)}
|
||||||
|
.baikal-nav{display:none!important}
|
||||||
|
.baikal-nav.is-open{display:flex!important}
|
||||||
|
.baikal-nav-actions{display:none!important}
|
||||||
|
.baikal-brand small{display:none!important}
|
||||||
|
.baikal-brand{font-size:18px!important}
|
||||||
|
.menu-toggle{display:block!important}
|
||||||
|
|
||||||
|
/* Возвращаем персонажей в упрощённую шапку без лишнего декора. */
|
||||||
|
.baikal-header .water-animation-layer{display:block!important;height:42%!important}
|
||||||
|
.baikal-header .hero-bubbles,.baikal-header .hero-bubbles-back,.baikal-header .tail-bubbles{display:none!important}
|
||||||
|
.baikal-header .hero-nerpa{display:block!important;right:6%;bottom:7%;width:clamp(150px,18vw,240px);z-index:8}
|
||||||
|
.baikal-header .free-fish-inner{filter:none!important}
|
||||||
@media(max-width:620px){
|
@media(max-width:620px){
|
||||||
.baikal-header .hero-nerpa{
|
.baikal-header .hero-nerpa{
|
||||||
right:1%;
|
right:1%;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<section class="architecture" id="architecture"><div class="page"><div class="page-title"><h3>Пешеходный маршрут по Иркутску</h3><p>Маршрут начинается в самом сердце города: Сквер Кирова, старейшие храмы Иркутска и Нижняя набережная. Затем прогулка продолжается по улице Карла Маркса и выходит к Ангаре, островам и 130-му кварталу.</p></div><p class="arch-intro">Первые остановки показывают Иркутск XVII–XIX веков: место бывшего острога, православные храмы, Польский костёл и набережную с памятником основателю города и Московскими воротами. После этого маршрут переходит на Карла Маркса — бывшую Большую улицу, где сосредоточены банки, торговые дома, театр и другие памятники городской архитектуры.</p><div class="window-ornament" aria-hidden="true"><svg viewBox="0 0 1200 118" preserveAspectRatio="none"><path class="goldline soft" d="M0 72 C120 20 220 20 340 72 S560 124 680 72 S900 20 1020 72 S1140 124 1200 72"/><g class="goldline" transform="translate(510 7)"><path d="M18 95V31M162 95V31M18 31H162M28 31V18H152V31M42 18V8H138V18M56 95V44H124V95M56 44Q90 18 124 44M71 95V53H109V95M90 53V95M56 68H124"/><path d="M18 31L4 44M162 31L176 44M42 18L30 7M138 18L150 7"/></g></svg></div>
|
<section class="architecture" id="architecture"><div class="page"><div class="page-title"><h3>Пешеходный маршрут по Иркутску</h3><p>Маршрут начинается в самом сердце города: Сквер Кирова, старейшие храмы Иркутска и Нижняя набережная. Затем прогулка продолжается по улице Карла Маркса и выходит к Ангаре, островам и 130-му кварталу.</p></div><p class="arch-intro">Первые остановки показывают Иркутск XVII–XIX веков: место бывшего острога, православные храмы, Польский костёл и набережную с памятником основателю города и Московскими воротами. После этого маршрут переходит на Карла Маркса — бывшую Большую улицу, где сосредоточены банки, торговые дома, театр и другие памятники городской архитектуры.</p><div class="window-ornament" aria-hidden="true"><svg viewBox="0 0 1200 118" preserveAspectRatio="none"><path class="goldline soft" d="M0 72 C120 20 220 20 340 72 S560 124 680 72 S900 20 1020 72 S1140 124 1200 72"/><g class="goldline" transform="translate(510 7)"><path d="M18 95V31M162 95V31M18 31H162M28 31V18H152V31M42 18V8H138V18M56 95V44H124V95M56 44Q90 18 124 44M71 95V53H109V95M90 53V95M56 68H124"/><path d="M18 31L4 44M162 31L176 44M42 18L30 7M138 18L150 7"/></g></svg></div>
|
||||||
<div class="arch-list"><article class="arch-card"><div class="arch-photo" data-bg="assets/images/image-b93ca6a7ef18.webp"><span class="arch-num">1</span></div><div class="arch-text"><div class="address">Исторический центр</div><h4>Сквер Кирова</h4><p>Главная площадь исторического Иркутска сформировалась рядом с южной стеной острога. В разные периоды она называлась Кремлёвской, Тихвинской, Гостинодворской и площадью графа Сперанского. Сегодня сквер остаётся одной из центральных общественных площадок города.</p><div class="fact"><b>На маршруте:</b> отсюда удобно начинать знакомство с историческим центром — рядом находятся Спасская церковь, Вечный огонь, Польский костёл и Собор Богоявления.</div></div></article>
|
<div class="arch-list"><article class="arch-card"><div class="arch-photo" data-bg="assets/images/image-b93ca6a7ef18.webp"><span class="arch-num">1</span></div><div class="arch-text"><div class="address">Исторический центр</div><h4>Сквер Кирова</h4><p>Главная площадь исторического Иркутска сформировалась рядом с южной стеной острога. В разные периоды она называлась Кремлёвской, Тихвинской, Гостинодворской и площадью графа Сперанского. Сегодня сквер остаётся одной из центральных общественных площадок города.</p><div class="fact"><b>На маршруте:</b> отсюда удобно начинать знакомство с историческим центром — рядом находятся Спасская церковь, Вечный огонь, Польский костёл и Собор Богоявления.</div></div></article>
|
||||||
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-85be3d37b82e92d2.webp"><span class="arch-num">2</span></div><div class="arch-text"><div class="address">ул. Ленина, 1А</div><h4>Здание Правительства Иркутской области — «Серый дом»</h4><p>Монументальное административное здание на главной площади города. Его строгий серый фасад формирует один из самых узнаваемых советских архитектурных акцентов центра Иркутска.</p><div class="fact"><b>На маршруте:</b> после Сквера Кирова стоит обратить внимание на масштаб здания и то, как оно формирует пространство площади графа Сперанского.</div></div></article>
|
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-85be3d37b82e92d2.webp"><span class="arch-num">2</span></div><div class="arch-text"><div class="address">ул. Ленина, 1А</div><h4>Правительство Иркутской области</h4><p>Монументальное административное здание на главной площади города. Его строгий серый фасад формирует один из самых узнаваемых советских архитектурных акцентов центра Иркутска.</p><div class="fact"><b>На маршруте:</b> после Сквера Кирова стоит обратить внимание на масштаб здания и то, как оно формирует пространство площади графа Сперанского.</div></div></article>
|
||||||
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/image-49b26f21fe58.webp"><span class="arch-num">3</span></div><div class="arch-text"><div class="address">Сухэ-Батора, 2</div><h4>Спасская церковь</h4><p>Храм Спаса Нерукотворного Образа — один из старейших каменных памятников Иркутска и важнейший ориентир на месте бывшего Иркутского кремля. Нынешнее каменное здание было заложено в 1706 году. Особенность храма — сохранившиеся наружные фрески XIX века.</p><div class="fact"><b>На что смотреть:</b> белокаменный силуэт, колокольня и живописные композиции на наружных стенах.</div></div></article>
|
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/image-49b26f21fe58.webp"><span class="arch-num">3</span></div><div class="arch-text"><div class="address">Сухэ-Батора, 2</div><h4>Спасская церковь</h4><p>Храм Спаса Нерукотворного Образа — один из старейших каменных памятников Иркутска и важнейший ориентир на месте бывшего Иркутского кремля. Нынешнее каменное здание было заложено в 1706 году. Особенность храма — сохранившиеся наружные фрески XIX века.</p><div class="fact"><b>На что смотреть:</b> белокаменный силуэт, колокольня и живописные композиции на наружных стенах.</div></div></article>
|
||||||
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/image-fd156ca504d5.webp"><span class="arch-num">4</span></div><div class="arch-text"><div class="address">Исторический центр · рядом со Спасской церковью</div><h4>Памятник Петру и Февронии</h4><p>Скульптурная композиция, посвящённая святым Петру и Февронии Муромским, расположена в исторической части Иркутска. Памятник органично включён в прогулочный маршрут между храмами и набережной.</p><div class="fact"><b>По пути:</b> остановка сразу после Спасской церкви добавляет маршруту камерный скульптурный акцент перед дальнейшим знакомством с храмовым ансамблем.</div></div></article>
|
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/image-fd156ca504d5.webp"><span class="arch-num">4</span></div><div class="arch-text"><div class="address">Исторический центр · рядом со Спасской церковью</div><h4>Памятник Петру и Февронии</h4><p>Скульптурная композиция, посвящённая святым Петру и Февронии Муромским, расположена в исторической части Иркутска. Памятник органично включён в прогулочный маршрут между храмами и набережной.</p><div class="fact"><b>По пути:</b> остановка сразу после Спасской церкви добавляет маршруту камерный скульптурный акцент перед дальнейшим знакомством с храмовым ансамблем.</div></div></article>
|
||||||
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-53619cec1a79ccc1.webp"><span class="arch-num">5</span></div><div class="arch-text"><div class="address">Нижняя Набережная, 2</div><h4>Собор Богоявления</h4><p>Один из старейших каменных храмов города. Каменный собор был заложен в 1718 году на месте сгоревшей деревянной церкви и долгое время являлся кафедральным собором Иркутской епархии. Его фасады отличаются ярким декором и чертами сибирского барокко.</p><div class="fact"><b>Интересно:</b> собор вместе со Спасской церковью формирует один из самых узнаваемых исторических ансамблей Иркутска.</div></div></article>
|
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-53619cec1a79ccc1.webp"><span class="arch-num">5</span></div><div class="arch-text"><div class="address">Нижняя Набережная, 2</div><h4>Собор Богоявления</h4><p>Один из старейших каменных храмов города. Каменный собор был заложен в 1718 году на месте сгоревшей деревянной церкви и долгое время являлся кафедральным собором Иркутской епархии. Его фасады отличаются ярким декором и чертами сибирского барокко.</p><div class="fact"><b>Интересно:</b> собор вместе со Спасской церковью формирует один из самых узнаваемых исторических ансамблей Иркутска.</div></div></article>
|
||||||
@@ -24,4 +24,3 @@
|
|||||||
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-491ce3a85d581bd9.webp"><span class="arch-num">23</span></div><div class="arch-text"><div class="address">Иркутская слобода</div><h4>130-й квартал</h4><p>Современная туристическая зона, созданная вокруг восстановленной и перенесённой деревянной застройки. Здесь историческая архитектура Иркутска соединена с кафе, ресторанами, музеями, магазинами и общественными пространствами.</p><div class="fact"><b>Финальная прогулка:</b> пройти квартал целиком лучше без спешки — детали деревянных фасадов особенно хорошо читаются вблизи.</div></div></article>
|
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-491ce3a85d581bd9.webp"><span class="arch-num">23</span></div><div class="arch-text"><div class="address">Иркутская слобода</div><h4>130-й квартал</h4><p>Современная туристическая зона, созданная вокруг восстановленной и перенесённой деревянной застройки. Здесь историческая архитектура Иркутска соединена с кафе, ресторанами, музеями, магазинами и общественными пространствами.</p><div class="fact"><b>Финальная прогулка:</b> пройти квартал целиком лучше без спешки — детали деревянных фасадов особенно хорошо читаются вблизи.</div></div></article>
|
||||||
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-9955710e15720dae.webp"><span class="arch-num">24</span></div><div class="arch-text"><div class="address">130-й квартал</div><h4>Скульптура Бабра</h4><p>Бабр — символ Иркутска и один из самых популярных городских образов. Скульптура установлена у входа в 130-й квартал и стала естественной финальной точкой маршрута по историческому центру.</p><div class="fact"><b>Для фото:</b> лучше снимать скульптуру вместе с перспективой квартала, чтобы в кадре осталась деревянная архитектура.</div></div></article></div></div></section>
|
<article class="arch-card"><div class="arch-photo" data-bg="assets/images/remote-9955710e15720dae.webp"><span class="arch-num">24</span></div><div class="arch-text"><div class="address">130-й квартал</div><h4>Скульптура Бабра</h4><p>Бабр — символ Иркутска и один из самых популярных городских образов. Скульптура установлена у входа в 130-й квартал и стала естественной финальной точкой маршрута по историческому центру.</p><div class="fact"><b>Для фото:</b> лучше снимать скульптуру вместе с перспективой квартала, чтобы в кадре осталась деревянная архитектура.</div></div></article></div></div></section>
|
||||||
<div class="section-wave"></div>
|
<div class="section-wave"></div>
|
||||||
|
|
||||||
|
|||||||
@@ -6,5 +6,7 @@
|
|||||||
<title>Иркутск — что нужно знать в поездке</title>
|
<title>Иркутск — что нужно знать в поездке</title>
|
||||||
<link rel="preconnect" href="https://unpkg.com">
|
<link rel="preconnect" href="https://unpkg.com">
|
||||||
<link rel="preload" as="image" href="assets/images/image-ef4cae8a5d1e.webp" fetchpriority="high">
|
<link rel="preload" as="image" href="assets/images/image-ef4cae8a5d1e.webp" fetchpriority="high">
|
||||||
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" crossorigin="">
|
||||||
|
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" crossorigin=""></script>
|
||||||
<link rel="stylesheet" href="assets/site.css">
|
<link rel="stylesheet" href="assets/site.css">
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
+57
-2
@@ -1,2 +1,57 @@
|
|||||||
<section class="route-wrap" id="route"><div class="page"><div class="page-title"><h3>Карта пешеходного маршрута</h3><p>Маршрут построен в Яндекс Картах в режиме «пешком»: исторический центр, Нижняя набережная, Карла Маркса, Александр III, острова Юность и Конный и выход к Бабру в 130-м квартале.</p></div><div class="map-card"><div class="route-map-frame"><iframe src="https://yandex.ru/map-widget/v1/?mode=routes&rtext=52.288050%2C104.281500~52.291140%2C104.281272~52.292265%2C104.282609~52.293444%2C104.286194~52.291389%2C104.297500~52.287300%2C104.290000~52.282233%2C104.284712~52.278972%2C104.281083~52.276685%2C104.277768~52.275489%2C104.277109~52.273500%2C104.279500~52.272800%2C104.278500~52.273398%2C104.274517~52.271900%2C104.273900~52.270200%2C104.274800~52.269350%2C104.277000~52.269373%2C104.278123~52.268550%2C104.279250~52.268300%2C104.278150~52.269350%2C104.277000~52.270900%2C104.277700~52.272800%2C104.278500~52.273850%2C104.279650~52.274850%2C104.282050~52.275550%2C104.284250~52.276000%2C104.286483&rtt=pd&z=14&l=map" loading="eager" allowfullscreen="true" title="Пешеходный маршрут по Иркутску"></iframe></div></div></div></section>
|
<section class="route-wrap" id="route">
|
||||||
|
<div class="page">
|
||||||
|
<div class="page-title">
|
||||||
|
<h3>Карта пешеходного маршрута</h3>
|
||||||
|
<p>24 остановки по историческому центру Иркутска: от Сквера Кирова через Карла Маркса и набережную Ангары до 130-го квартала.</p>
|
||||||
|
</div>
|
||||||
|
<div class="map-card">
|
||||||
|
<div class="route-map-frame">
|
||||||
|
<div id="irkutsk-route-map" role="application" aria-label="Карта пешеходного маршрута по Иркутску"></div>
|
||||||
|
</div>
|
||||||
|
<div class="map-note"><span class="map-note-line"></span><span>Номера на карте совпадают с порядком остановок ниже</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<script>
|
||||||
|
(() => {
|
||||||
|
const mapElement = document.getElementById('irkutsk-route-map');
|
||||||
|
if (!mapElement || typeof L === 'undefined') return;
|
||||||
|
const stops = [
|
||||||
|
['Сквер Кирова',52.288050,104.281500],['Правительство Иркутской области',52.290177,104.280392],
|
||||||
|
['Спасская церковь',52.292265,104.282609],['Памятник Петру и Февронии',52.293444,104.286194],
|
||||||
|
['Собор Богоявления',52.291389,104.297500],['Польский костёл',52.287300,104.290000],
|
||||||
|
['Нижняя набережная и памятник Якову Похабову',52.282233,104.284712],['Московские ворота',52.278972,104.281083],
|
||||||
|
['Русско-Азиатский банк',52.276685,104.277768],['Дом архитектора В. А. Рассушина',52.275489,104.277109],
|
||||||
|
['Драматический театр им. Н. П. Охлопкова',52.273500,104.279500],['Книжный магазин и типография Макушина и Посохина',52.272800,104.278500],
|
||||||
|
['Усадьба С. Н. Верхоленцева',52.273398,104.274517],['Сибирский торговый банк',52.271900,104.273900],
|
||||||
|
['Театр-иллюзион Яджоглу',52.270200,104.274800],['Дом Воллернера',52.269350,104.277000],
|
||||||
|
['Торговый дом фирмы «Треугольник»',52.269373,104.278123],['Мануфактурный магазин Второвых',52.268550,104.279250],
|
||||||
|
['Типография Восточно-Сибирской железной дороги',52.268300,104.278150],['Памятник Александру III',52.275504,104.277195],
|
||||||
|
['Остров Юность',52.270900,104.277700],['Остров Конный',52.272800,104.278500],
|
||||||
|
['130-й квартал',52.273850,104.279650],['Скульптура Бабра',52.276000,104.286483]
|
||||||
|
];
|
||||||
|
const routeMap = L.map(mapElement,{scrollWheelZoom:false,zoomControl:false});
|
||||||
|
L.control.zoom({position:'bottomright'}).addTo(routeMap);
|
||||||
|
L.tileLayer('https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',{maxZoom:19,attribution:'© OpenStreetMap contributors, Tiles style by HOT'}).addTo(routeMap);
|
||||||
|
const coordinates = stops.map(([,lat,lng]) => [lat,lng]);
|
||||||
|
const routeStyle = {color:'#d8a653',weight:5,opacity:.95,lineCap:'round',lineJoin:'round'};
|
||||||
|
const directRoute = L.polyline(coordinates,{...routeStyle,dashArray:'8 8',opacity:.55}).addTo(routeMap);
|
||||||
|
const walkingCoordinates = coordinates.map(([lat,lng]) => `${lng},${lat}`).join(';');
|
||||||
|
fetch(`https://routing.openstreetmap.de/routed-foot/route/v1/driving/${walkingCoordinates}?overview=full&geometries=geojson&steps=false`)
|
||||||
|
.then(response => response.ok ? response.json() : Promise.reject(new Error('Walking route unavailable')))
|
||||||
|
.then(data => {
|
||||||
|
const route = data.routes?.[0]?.geometry;
|
||||||
|
if (!route) return;
|
||||||
|
routeMap.removeLayer(directRoute);
|
||||||
|
L.geoJSON(route,{style:routeStyle}).addTo(routeMap);
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
const bounds = L.latLngBounds(coordinates);
|
||||||
|
stops.forEach(([title,lat,lng],index) => {
|
||||||
|
const marker = L.marker([lat,lng],{icon:L.divIcon({className:'route-marker-wrap',html:`<span class="route-marker">${index+1}</span>`,iconSize:[36,36],iconAnchor:[18,18]})}).addTo(routeMap);
|
||||||
|
marker.bindPopup(`<strong>${index+1}. ${title}</strong><br><span>Пешеходный маршрут по Иркутску</span>`);
|
||||||
|
});
|
||||||
|
routeMap.fitBounds(bounds,{padding:[28,28]});
|
||||||
|
window.addEventListener('resize',()=>routeMap.invalidateSize(),{passive:true});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|||||||
@@ -24,6 +24,10 @@
|
|||||||
element.classList.add('bg-loaded');
|
element.classList.add('bg-loaded');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
window.addEventListener('beforeprint', () => {
|
||||||
|
document.querySelectorAll('[data-bg]').forEach(loadBackground);
|
||||||
|
});
|
||||||
|
|
||||||
if ('IntersectionObserver' in window) {
|
if ('IntersectionObserver' in window) {
|
||||||
const backgroundObserver = new IntersectionObserver((entries, observer) => {
|
const backgroundObserver = new IntersectionObserver((entries, observer) => {
|
||||||
entries.forEach((entry) => {
|
entries.forEach((entry) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user