30
Алексей Лобанов, разработчик Я.Субботник, Минск, 31 августа Как создаются Яндекс.Карты

Алексей Лобанов — Как создаются Яндекс.Карты

  • Upload
    yandex

  • View
    892

  • Download
    0

Embed Size (px)

DESCRIPTION

Когда мы говорим «Яндекс.Карты», то имеем в виду не только отображение карт, но и ряд сопутствующих сервисов, которые помогают лучше ориентироваться в окружающем мире: маршруты, пробки, спутниковые снимки, панорамы улиц и многое другое. За тем, что видно снаружи, стоит множество данных и процессов, обеспечивающих работу сервиса. В докладе рассказано о том, как создаются Яндекс.Карты и с какими сложностями сталкиваются их разработчики.

Citation preview

Page 1: Алексей Лобанов — Как создаются Яндекс.Карты

Алексей Лобанов, разработчик

Я.Субботник, Минск, 31 августа

Как создаются Яндекс.Карты

Page 2: Алексей Лобанов — Как создаются Яндекс.Карты

2 Яндекс.Карты

Page 3: Алексей Лобанов — Как создаются Яндекс.Карты

3 Геоинформационные сервисы

Page 4: Алексей Лобанов — Как создаются Яндекс.Карты

Спутниковые снимки

Исходные спутниковые снимки

Привязка снимков к карте

Page 5: Алексей Лобанов — Как создаются Яндекс.Карты

5 Спутниковые снимки

Page 6: Алексей Лобанов — Как создаются Яндекс.Карты

6

Исходных данных много

Миллионы квадратных километров

Сотни терабайт исходных данных

Миллиарды тайлов

Сотни тысяч отдельных мозаик тайлов

Page 7: Алексей Лобанов — Как создаются Яндекс.Карты

7

Данные не всегда качественные

Недостаточная точность привязки

Искажения

Дымка, размытость, облачность и т.п.

Page 8: Алексей Лобанов — Как создаются Яндекс.Карты

8

Привязка спутниковых снимков

Page 9: Алексей Лобанов — Как создаются Яндекс.Карты

9

Привязка спутниковых снимков

Page 10: Алексей Лобанов — Как создаются Яндекс.Карты

10

Привязка спутниковых снимков

Page 11: Алексей Лобанов — Как создаются Яндекс.Карты

Создание карты

Оцифровка карты

Наложение дизайна

Задача о расстановке подписей

Page 12: Алексей Лобанов — Как создаются Яндекс.Карты

12

Оцифрованные данные

• Геометрия –точка

–линия

–участок площадь

• Атрибуты –Название

–Тип

–Категория дороги

–Адрес

Page 13: Алексей Лобанов — Как создаются Яндекс.Карты

13

Редактирование данных

Большой объём данных

Одновременные правки

Отслеживание изменений

Page 14: Алексей Лобанов — Как создаются Яндекс.Карты

14

Редактирование данных

Готовые инструменты не подходят

Собственный редактор геоданных

Page 15: Алексей Лобанов — Как создаются Яндекс.Карты

15 Фрагмент слоя улиц без дизайна

Page 16: Алексей Лобанов — Как создаются Яндекс.Карты

16

Наложение дизайна

Page 17: Алексей Лобанов — Как создаются Яндекс.Карты

17

Отрисовка карты

На карте порядка 109-1010 объектов

Рисовать тайлы нужно быстро

Карта не должна быть перегружена

информацией

Page 18: Алексей Лобанов — Как создаются Яндекс.Карты

18 Расстановка подписей

Page 19: Алексей Лобанов — Как создаются Яндекс.Карты

19

Расстановка подписей

Объект может быть подписан разными

способами

Подписи имеют различный вес

Подписи не должны пересекаться

Дополнительные ограничения

Page 20: Алексей Лобанов — Как создаются Яндекс.Карты

20

Расстановка подписей

Задача о максимальном независимом

множестве

NP-трудная задача

Решается с помощью эвристик и

приближений

Page 21: Алексей Лобанов — Как создаются Яндекс.Карты

Публикация данных

Page 22: Алексей Лобанов — Как создаются Яндекс.Карты

22

Подготовка данных для сервисов

• Исходные данные –имеют разные форматы

–большой объем

• Нужно сгенерировать данные для сервисов –Пробок

–Маршрутизации

–Поиска

• Сеть, железо, ПО могут выходить из строя

• Обновляться нужно часто

Page 23: Алексей Лобанов — Как создаются Яндекс.Карты

23 Фрагмент графа задач подготовки данных

Page 24: Алексей Лобанов — Как создаются Яндекс.Карты

24

Система подготовки данных

• Система распределенных вычислений

• Граф зависимостей задач

• Задачи используют разные инструменты –Бинарники на C++

–SQL

–MapReduce

• Система раскладки данных

Page 25: Алексей Лобанов — Как создаются Яндекс.Карты

Маршрутизации

Page 26: Алексей Лобанов — Как создаются Яндекс.Карты

26

Рост графа для маршрутизации

Page 27: Алексей Лобанов — Как создаются Яндекс.Карты

Иерархический алгоритм

Page 28: Алексей Лобанов — Как создаются Яндекс.Карты

Обновление пробок

Ситуация на дорогах меняется

Нужно уметь обновлять граф раз в

несколько минут

Page 29: Алексей Лобанов — Как создаются Яндекс.Карты

29

Заключение

Page 30: Алексей Лобанов — Как создаются Яндекс.Карты

Алексей Лобанов

Разработчик

[email protected]

Спасибо