Как создаются Яндекс.Карты
DESCRIPTION
Студенты технических специальностей изучают множество математических дисциплин, но далеко не всегда понимают, где их можно применить. Я расскажу, знание каких разделов математики необходимо при разработке сервисов Яндекса.TRANSCRIPT
![Page 1: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/1.jpg)
1
![Page 2: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/2.jpg)
2
Как создаются
Яндекс.Карты
Алексей Чернигин
Я.Студент, Нижний Новгород
![Page 3: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/3.jpg)
3
«Вот, говорят, путешествие — лучшее средство
образовать себя во всем: правда, точноправда! Как многому тут научишься».
Николай Гаврилович
Чернышевский
![Page 4: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/4.jpg)
4
С чего все начиналось – 2004 год
![Page 5: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/5.jpg)
5
Единая мировая карта – 2009 г
• Склеены воедино карты от разных поставщиков
• Выглядели как лоскутное одеяло
• Редко обновлялись, потому что поставщиками были
производители бумажных атласов, которые обновляли не
чаще раза в год
![Page 6: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/6.jpg)
6
Начало производства карт – 2010 г
• Покупка ООО ―ГИС Технологии‖
• Производство карт руками – сложная и продолжительная
задача
• Народная карта
![Page 7: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/7.jpg)
7
Спутниковые снимки
![Page 8: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/8.jpg)
8
Солнечно-синхронная орбита
![Page 9: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/9.jpg)
9
Спутниковые снимки
![Page 10: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/10.jpg)
10
Артефакты и помехи на снимках
![Page 11: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/11.jpg)
11
Подготовка спутниковых снимков
• Перепроецирование
• Цветокоррекция
• Склейка
• Привязка к географическим координатам
![Page 12: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/12.jpg)
12
Привязка по GPS-трекам
![Page 13: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/13.jpg)
13
Передача больших изображений
• Миллионы квадратных километров
• Сотни террабайт исходных данных
• Узкие каналы
• Проблема обновления
![Page 14: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/14.jpg)
14
![Page 15: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/15.jpg)
15
Разметка спутниковых снимков
![Page 16: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/16.jpg)
16
Нераскрашенные векторные объекты
![Page 17: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/17.jpg)
17
Раскрашенная карта
![Page 18: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/18.jpg)
18
Расстановка подписей
![Page 19: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/19.jpg)
19
Расстановка подписей
• Объект может быть подписан разными способами
• Подписи не должны пересекаться
• Подписи имеют различный вес
• Дополнительные ограничения
![Page 20: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/20.jpg)
20
Задача из теории графов
• Задача о максимальном независимом множестве
• NP-трудная задача
• Решается с помощью эвристик и приближений
![Page 21: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/21.jpg)
21
Редактирование данных
• Большой объем данных
• Одновременные правки
• Мгновенное отображение
• Отслеживание изменений
![Page 22: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/22.jpg)
22
ArcGIS – круто, дорого, но не
помогает
![Page 23: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/23.jpg)
23
Собственный редактор геоданных
• Доступ к спутниковым снимкам
• Инструменты для профессиональной картографии
• Одновременная правка
• Моментальное отображение
• Надежное хранилище
![Page 24: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/24.jpg)
24
Народная карта
![Page 25: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/25.jpg)
25
Публикация данных
• Многопользовательская среда
• Автоматическое управление системными ресурсами
• Выполнение на кластере, map-reduce
• Версионирование ресурсов
• Отказоустойчивость
• Мягкий перезапуск при обновлении ПО
![Page 26: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/26.jpg)
26
Публикация данных – это просто
![Page 27: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/27.jpg)
27
Мир не стоит на месте
• Нужна навигация
• Нужна локализация
• Нужны панорамы
• Нужна информация о дорожной ситуации
• Нужны подробные карты мира
• Нужно оперативно реагировать на изменение карт
• Нужно…
![Page 28: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/28.jpg)
28
Геоинформационные сервисы
Панорамы ПробкиКарты
Спутниковые снимки Геопоиск Навигация
![Page 29: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/29.jpg)
29
Как создаются сервисы
с точки зрения пользователя
![Page 30: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/30.jpg)
30
Но все устроено намного сложнее
![Page 31: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/31.jpg)
31
Пример: доступность сервисов
• Каждому сервису соответствует слой покрытия
• Каждый слой состоит из полигонов с дырками
• Геометрия полигонов не зависит от зума
• Каждому полигону соответствует набор метаданных
![Page 32: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/32.jpg)
32
Надо уметь отвечать на вопросы• Доступен ли сервис в точке?
• Существует ли покрытие заданной точки каким-либополигоном?
• Доступен ли сервис хотя бы в одной точке некоторой
области?
• Пересекается ли заданная область с каким-либополигоном?
• Какие метаданные доступны в точке?
• Какой полигон покрывает данную точку?
![Page 33: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/33.jpg)
33
R-деревья
• Пространственный индекс для
выполнения запросов по
геокоординатам
• В промежуточных узлах хранятся
минимальные ограничивающие
прямоугольники
• В терминальных узлах (листьях) хранятся полигоны целиком
• При быстром поиске нужного узла и
большом числе вершин в полигоне –
большое время работы
![Page 34: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/34.jpg)
34
«Нарезка» исходных полигонов
![Page 35: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/35.jpg)
35
Структура хранения покрытий
• Разбиение исходных полигонов на части прямыми линиями
параллельными осям координат
• Формирование бинарного дерева поиска
• В промежуточных узлах хранятся координата и
направление разреза
• В терминальных узлах хранятся либо части исходного
полигона
![Page 36: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/36.jpg)
36
«Математика представляет искуснейшие
изобретения, способные удовлетворить
любознательность, облегчить ремѐсла и
уменьшить труд людей».
Рене Декарт
![Page 37: Как создаются Яндекс.Карты](https://reader034.vdocuments.net/reader034/viewer/2022051411/5462142baf7959c2408b4626/html5/thumbnails/37.jpg)
37
Спасибо за
внимание!