# Источники географической основы

Сборка: 17.10.2026. Отображение: каталог из 89 регионов, 2663 территориальных полигонов; наборы загружаются по регионам.

1. Основной слой 85 регионов и большинство районных полигонов: OpenStreetMap contributors, экспорт timurkanaz/Russia_geojson_OSM. Снимок репозитория 5af46d6dab9a502713611846892e4185f157dab7, последнее изменение 14.01.2024. Дата изменения репозитория не подтверждает дату юридической актуальности каждого полигона. Геоданные OSM — ODbL 1.0: https://www.openstreetmap.org/copyright и https://opendatacommons.org/licenses/odbl/1-0/ .
2. Дополнительные четыре региональных контура: geoBoundaries gbOpen UKR ADM1, использована копия исходного геодатасета из build/ukraine_adm1.geojson репозитория prokopenkoad42-creator/karta-rossii. Отображаемые названия и группировка заданы в конфигурации проекта. Это геометрия из открытого набора, не официальное удостоверение границ.
3. Дополнительные районные полигоны: geoBoundaries gbOpen UKR ADM2. В метаданных источник указывает 2006 год, geoBoundaries/Wikimedia Commons, Public Domain. Эти полигоны заведомо не подтверждают современную муниципальную структуру.
4. Справка geoBoundaries и условия данных: https://www.geoboundaries.org/ и https://www.geoboundaries.org/api/current/gbOpen/UKR/ADM2/ . Ссылки, фиксированные снимки и SHA-256 каждого исходного файла: scripts/geodata-sources.json в серверном комплекте.
5. Leaflet 1.9.4, BSD-2-Clause: /vendor/leaflet/LICENSE . Миниатюры и сведения о местах перенесены из пилота; источники описаний хранятся в карточках.

## Важное ограничение

Географическое покрытие всей страны подготовлено, но современность районного деления на октябрь 2026 года НЕ подтверждена. Некоторые слои относятся к более ранним административным схемам, часть дополнительных названий сохранена на языке/в транслитерации источника. Не следует объявлять этот набор полным официальным современным реестром районов.

Перед соответствующим публичным заявлением требуется сверка с актуальными официальными классификаторами и загрузка проверенных полигонов. Это ограничение качества и давности исходных геоданных. Пользовательские места, идентификаторы и личные посещения хранятся отдельно и должны сохраняться при обновлении слоя.

Текущий отчёт покрытия и признаков проверки: /geodata/quality.json . Все строки в нём verifiedCurrent=false до отдельной сверки.

## Мобильный концепт: города и окружение

- Города России: hflabs/city / DaData, https://github.com/hflabs/city ; данные cities.json — производная выборка, CC BY-SA 4.0. Административные центры дополнены GeoNames cities500, https://www.geonames.org/ , CC BY 4.0. Координаты городов хранятся отдельно от полигонов территорий.
- Приграничное окружение: Natural Earth, https://www.naturalearthdata.com/ , Public Domain. Показана только полоса за пределами основного слоя, обрезанная по расстоянию и разбитая на шесть ступеней затухания. Данные окружения не используются для границ основной карты.
- Районные линии строятся только по общим рёбрам соседних территорий внутри субъекта. Внешние контуры районов отдельно не рисуются; региональные линии очищены от повторов.

### Проверка подписей · исправление 4

Имена из GeoNames сверены с таблицей alternateNamesV2 по языковому коду ru. Исторические и разговорные варианты исключены; приоритет имеет preferred name. Для отдельных городов действует явно заданный русский вариант отображения по административным справочникам. Неоднозначные записи без русского наименования не выводятся. Близкие дубли городов объединены с приоритетом hflabs/city.

Подписи городов закреплены у координат без принудительного сдвига. Опорные точки названий регионов и районов рассчитаны внутри основного полигона территории, а не по центру её прямоугольника.

### Отображение Москвы · исправление 5

Внутригородские районы Москвы, их линии и подписи скрыты. Внешний контур Москвы согласован с покрытием её районных полигонов; московская граница в слое Московской области согласована с тем же контуром. Подмосковные районные линии обрезаны по этой границе. Поле renderFeatures содержит геометрию для отрисовки без пересечений, исходные features сохранены.

У каждой одиночной и групповой миниатюры есть подпись. Счётчик группы расположен под названием и открывает список существующих объектов; автоматическое приближение при выборе группы отключено. Группировка не распространяется цепочкой через удалённые объекты.

### Группы миниатюр · исправление 6

Тесные группы до восьми объектов раскрываются на карте с линиями привязки. Большие группы сначала приближаются с ограничением шага масштаба; при необходимости остаётся список. Выбранное место выводится отдельной миниатюрой поверх остальных независимо от группировки. Выбор места из карточек, поиска и коллекции сохраняет фактическую координату и не увеличивает масштаб. Закрытие карточки восстанавливает обычную группировку.

### Клик по счётчику и круговое раскрытие · исправление 7

Подписи и счётчики миниатюр принимают клики. DOM-событие обрабатывается непосредственно на миниатюре и не передаётся карте или району. Тесные группы раскрываются по окружности, начиная с положения «12 часов»; стрелки направлены к реальным координатам. В начале изменения масштаба круговое раскрытие сбрасывается, географические координаты объектов не изменяются.

### Визуальный выбор места · исправление 8

Круговое раскрытие заменено панелью плиток: на большом экране рядом с группой, на мобильном — снизу. Каждая плитка содержит миниатюру, название и город. Выбор плитки подсвечивает объект на фактической координате; остальные объекты той же группы временно скрываются. Полная карточка открывается только по «Подробнее», из неё можно вернуться к выбору. Закрытие панели возвращает обычную группировку. Масштаб при выборе не меняется.

### Стабильность подписей при зуме · исправление 9

Подписи больше не пересоздаются целиком при каждом событии карты. Сохраняется DOM-маркер каждого видимого названия; набор подписи пересчитывается после завершения анимации и паузы 300 мс после колеса. Ранее видимые подписи имеют приоритет, а пороги появления городов и региональных подписей используют запас по масштабу. Во время зума Leaflet перемещает существующие подписи вместе с картой.

### Положение панели выбора · исправление 10

На компьютере панель по умолчанию находится справа и перетаскивается за заголовок с ограничением по краям экрана. Положение сохраняется в течение сеанса и не зависит от выбранной миниатюры. Один щелчок выбирает место, двойной открывает полную карточку с возвратом к выбору. На мобильном панель остаётся нижней.

## 12. Stable miniature markers
Preserve marker elements throughout zoom, reconcile groups after wheel input settles, update existing icon dimensions in place. Place selection no longer pans the map. Explicit home, search and region navigation retain their navigation controls.

## 13. Progressive groups
Group covers reserve the full artwork, caption and badge area; overview scales add breathing room. Stable priority uses selection, cityMain and ID rather than viewport edges. Only visible covers reserve city-label space. Zooming out reconciles groups immediately at zoom end.

## 14. Automatic nearby chooser
After zooming in to 9.5 or closer, a remaining group near the viewport center automatically opens its visual chooser. It never pans the map or replaces an already open panel. Each membership set auto-opens only once per session, so dismissing it is respected.

## 15. Reveal lifecycle audit
Independent reveal timer prevents label rendering and district loading from cancelling automatic selection. Reevaluate after viewport movement, zoom, resize and catalog response. Include all visible groups, not only the central one. Automatic chooser refreshes as membership changes, manual choices and detail cards stay protected. Dismissal is scoped to the current view and filters. Explicit tile selection renders immediately. Category changes invalidate stale chooser contents.

## 16. Geographic reveal and Moscow Oblast names
Fixed ten city names from the hflabs city.csv area field (coordinate matched): Одинцово, Орехово-Зуево, Сергиев Посад, Ногинск, Воскресенск, Клин, Наро-Фоминск, Дмитров, Истра, Шатура. Source: https://raw.githubusercontent.com/hflabs/city/master/city.csv .
Removed picker selection suppression: all places participate in clustering even after choosing a tile. Grouping uses compact actual footprints and the complete loaded catalog, avoiding viewport-dependent membership. Chooser no longer opens unsolicited on zoom; places split on the map as soon as their footprints separate. More city labels are allowed at regional zoom.

## 17. Unified approximate geography and visible artwork footprints
All 89 region files were rebuilt as non-overlapping planar district partitions clipped to their canonical parent geometry. Each face is assigned once; slivers and gaps are assigned to the nearest existing district. The same geometry is used for district fills, boundaries, clicks and selection. District source dates and unverified-current flags remain unchanged; these are approximate tourism boundaries, not legal cadastral data. All 2,663 administrative IDs are retained. Izberbash uses a small approximate coastal patch because the simplified parent shoreline excluded the original polygon. See geodata/topology-report.json and scripts/rebuild-geography.py (Shapely 2.x).
Added coordinated pastel territory colors and a blue water background. Collected territories retain their gold fill. Selection uses an outline with no second translucent fill.
Miniature grouping now uses alpha-content bounds of each source image rather than its transparent square. Text captions are independently decluttered; required group badges remain selectable. Reconcile immediately at zoomend, preserving marker instances if membership is unchanged. Lavra regression covers zoom 10 against Abramtsevo with true Mercator projection.

## 18. Uniform regional color
All district fills inherit their parent region color. Regional boundaries are stronger, district borders remain subtle. Geographic coordinates, miniature grouping, zoom and panel logic are unchanged from the user-accepted v17. PC-MECHANICS.md and tests/pc-mechanics-baseline.json record the accepted mechanics.

## 19. Four verified visitor locations and project ledger
Added Craneland biostation (official navigation link), Gremyachiy Klyuch (official DMS coordinates), Monino museum grounds (museum volunteers coordinate; official visitor address linked), Gzhel craft museum in Rechitsy (official DMS coordinates). All four points are inside a unique Moscow Oblast district. Each has coordinateSource, coordinateNote, verifiedAt, a generated transparent illustration and measured markerBounds. Bird and porcelain miniatures are symbolic; spring and Tu-144 use real subject references.
Project tracking: PROJECT-STATUS.md, dist/project-status.json and dist/progress.html. Production PostgreSQL/admin deployment, mobile device acceptance, translations and advertising are explicitly pending. PC mechanics remain byte-verified against accepted v17.


## Версия 20 · Поклонная гора
Добавлен Монумент Победы: 55.731745, 37.507116. Источник координат: https://tripse.ru/excursions/russia/moscow/sight-monument-pobedy-na-poklonnoi-gore-326. Описание комплекса: https://www.victorymuseum.ru/. Миниатюра по фотографии: https://www.advantour.com/russia/images/moscow/moscow-poklonnaya-gora.jpg. Точка проверена на вхождение в московский контур. Механика ПК не изменена.


## Физическая география старинного атласа (версия31)
Реки и озёра: Natural Earth, физические слои масштаба1:10млн, общественное достояние. Генерализация предназначена для обзора, не навигации: https://www.naturalearthdata.com/downloads/10m-physical-vectors/ . Исходные GeoJSON: https://github.com/nvkelso/natural-earth-vector/tree/master/geojson . Взяты только физические водные объекты; административные границы оттуда не используются.
Лесной рисунок — обобщённые зоны лесных биомов4,5,6 RESOLVE Ecoregions2017 (Dinerstein et al.,2017), полученные через UNEP-WCMC: https://data-gis.unep-wcmc.org/server/rest/services/Bio-geographicalRegions/Resolve_Ecoregions/FeatureServer . Деревья являются условными знаками внутри зон, не отдельными реальными деревьями и не картой текущей лесистости. Поля eco_name и biome_num сохранены.

Версия33: основные дороги NaturalEarth ne_10m_roads (MajorHighway,Beltway,Bypass, а также Road/Unknown с обзорным рангом≤4), обзорная сеть, не данные для построения маршрута и не полный актуальный перечень федеральных дорог. Реки, озёра, лесные зоны и дороги геометрически обрезаны по объединению принятых контуров регионов самой карты. Живописная роща — художественная иллюстрация, сгенерированная встроенным image_gen по промпту: «Прозрачная акварельная роща смешанных деревьев для старинного атласа, объёмные неровные кроны, оливковые оттенки, тонкая гравюрная линия, просветы и мягкие тени».

## Водный слой современной карты — v35
Базовые реки и озёра NaturalEarth1:10млн — существующие обрезанные данные атласа. Дополнительные плотины и водохранилища: GlobalDamWatchv1.0, Lehner et al.,2024, CC BY4.0, https://doi.org/10.1038/s41597-024-03752-9 и https://www.globaldamwatch.org/database . Данные получены через публичную копию GDW_v1_epsilon_gdb: https://services8.arcgis.com/oTalEaSXAuyNT7xf/ArcGIS/rest/services/GDW_v1_epsilon_gdb/FeatureServer . Сохранены название, источник и GDW-ID; геометрия обрезана объединением принятых контуров регионов карты. Это обзорные и исторические данные, не навигация и не полный актуальный реестр малых прудов или гидросооружений. Широкие OSM-запросы завершились ошибкой. Узкий запрос way[water=pond] в bbox(55.5,37.0,56.2,38.5) выполнен через https://maps.mail.ru/osm/tools/overpass/api/interpreter 19.10.2026: добавлены1467контуров прудов. ©OpenStreetMap contributors, ODbL1.0: https://www.openstreetmap.org/copyright . Изменения: валидирование, небольшое упрощение и обрезка геометрии по контуру карты. Полученные геометрии и идентификаторы доступны в /geodata/hydro-extra.json; источник указан у каждого объекта. Результат не является полным реестром всех прудов страны.

### v36: водная гладь
Производные hydro-surface-base/detail.json подготовлены из прежних источников. Линии рек вычтены из водных полигонов соответствующего масштаба; исходные данные сохранены. Обработка выполняется scripts/build-water-surfaces.py до публикации.

v37: пересекающиеся водные поверхности объединены геометрическим union; внутренние контуры источников не рисуются, острова остаются отверстиями.

v40: локальная коррекция обзорного контура Котлина по расположению острова и водного промежутка на предоставленной пользователем карте. Ошибочная диагональная перемычка удалена. Подтверждение островного положения: https://dambaspb.ru/news/40-let-so-dnya-zaversheniya-stroitelstva-suhoputnogo-proezda-na-ostrov-kotlin . Точные очертания берегов не заявляются.

### v42: Смоленск и Смоленская область
22 карточки: официальные сайты Смоленского музея-заповедника, музея Гагарина, Хмелиты, национального парка «Смоленское Поозерье», городского и регионального туризма; источники координат указаны отдельно в карточках. Для природных территорий используются конкретные посетительские точки. Легенды без источников не добавлялись. Миниатюры созданы встроенным image_gen, оптимизированы в WebP с прозрачностью; это художественные иллюстрации, не точные модели. Набор промптов и редакционный реестр сохранены в исходниках research/smolensk-*-v42.json. У истока Днепра есть документированное расхождение с приблизительной границей региона; точка и её принадлежность Сычёвскому району сохранены по источнику.


## Старинная карта · художественный пилот v51

Палитра и линии используют существующие современные контуры карты. Лесные знаки — сгенерированная иллюстрация с прозрачностью, расположенная вручную в рамках художественного пилота Москвы и Подмосковья. Наличие рисунка не подтверждает лесной участок на местности. Штриховка возвышенностей — обобщённый декоративный рисунок, не данные высот и не топографические горизонтали. Это стилизация под карты XVIII–XIX веков, а не историческая карта конкретного года.

## Ландшафт старинной карты · v54

ESA WorldCover 2021 v200, DOI https://doi.org/10.5281/zenodo.7254221 . Лицензия CC BY 4.0, https://creativecommons.org/licenses/by/4.0/ . Данные: https://esa-worldcover.org/en/data-access .

© ESA WorldCover project 2021 / Contains modified Copernicus Sentinel data (2021) processed by ESA WorldCover consortium

Обработанные классы: древесный покров, сельхозугодья и травянистые территории. Луг не обозначается степью. Спутниковые данные 2021 года; современный покров может отличаться. Контуры обобщены и художественно оформлены, не являются лесным кадастром или исторической реконструкцией. Покрытие ограничено Москвой и Московской областью; границы пилота взяты из проекта. Исходные COG-тайлы, контрольные суммы и воспроизводимый уменьшенный снимок: research/landcover-moscow-v54.*; сборка: scripts/build-landcover-v54.py.

## Рельеф · пилот 0.55

Источник: Mapzen / Tilezen Terrain Tiles, AWS Open Data, https://registry.opendata.aws/terrain-tiles/ . Загружено 21.10.2026. Terrarium: `(R × 256 + G + B / 256) − 32768` метров, https://github.com/tilezen/joerd/blob/master/docs/formats.md .

В HTTP-метаданных скачанных фрагментов указаны SRTM и GMTED2010. United States 3DEP (formerly NED) and global GMTED2010 and SRTM terrain data courtesy of the U.S. Geological Survey. Условия источников: https://github.com/tilezen/joerd/blob/master/docs/attribution.md .

Исходные адреса и SHA-256 каждого фрагмента: research/dem-moscow-v55.json. Воспроизводимый уменьшенный снимок высот: research/dem-moscow-v55.png (0,1 м — шаг кодирования, а не точность съёмки). Тени рассчитаны заранее, с художественным усилением склонов; мелкие овраги могут отсутствовать. Единичные выбросы исправлены медианным фильтром; правило записано в метаданных и применимо только к низменному пилоту Москвы/Подмосковья. Этот слой не является точной топографической картой, полётной или пешеходной навигацией.
