37
1

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

  • Upload
    yandex

  • View
    184

  • Download
    0

Embed Size (px)

DESCRIPTION

Студенты технических специальностей изучают множество математических дисциплин, но далеко не всегда понимают, где их можно применить. Я расскажу, знание каких разделов математики необходимо при разработке сервисов Яндекса.

Citation preview

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

1

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

2

Как создаются

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

Алексей Чернигин

Я.Студент, Нижний Новгород

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

3

«Вот, говорят, путешествие — лучшее средство

образовать себя во всем: правда, точноправда! Как многому тут научишься».

Николай Гаврилович

Чернышевский

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

4

С чего все начиналось – 2004 год

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

5

Единая мировая карта – 2009 г

• Склеены воедино карты от разных поставщиков

• Выглядели как лоскутное одеяло

• Редко обновлялись, потому что поставщиками были

производители бумажных атласов, которые обновляли не

чаще раза в год

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

6

Начало производства карт – 2010 г

• Покупка ООО ―ГИС Технологии‖

• Производство карт руками – сложная и продолжительная

задача

• Народная карта

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

7

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

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

8

Солнечно-синхронная орбита

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

9

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

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

10

Артефакты и помехи на снимках

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

11

Подготовка спутниковых снимков

• Перепроецирование

• Цветокоррекция

• Склейка

• Привязка к географическим координатам

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

12

Привязка по GPS-трекам

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

13

Передача больших изображений

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

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

• Узкие каналы

• Проблема обновления

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

14

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

15

Разметка спутниковых снимков

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

16

Нераскрашенные векторные объекты

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

17

Раскрашенная карта

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

18

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

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

19

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

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

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

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

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

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

20

Задача из теории графов

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

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

• Решается с помощью эвристик и приближений

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

21

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

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

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

• Мгновенное отображение

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

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

22

ArcGIS – круто, дорого, но не

помогает

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

23

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

• Доступ к спутниковым снимкам

• Инструменты для профессиональной картографии

• Одновременная правка

• Моментальное отображение

• Надежное хранилище

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

24

Народная карта

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

25

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

• Многопользовательская среда

• Автоматическое управление системными ресурсами

• Выполнение на кластере, map-reduce

• Версионирование ресурсов

• Отказоустойчивость

• Мягкий перезапуск при обновлении ПО

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

26

Публикация данных – это просто

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

27

Мир не стоит на месте

• Нужна навигация

• Нужна локализация

• Нужны панорамы

• Нужна информация о дорожной ситуации

• Нужны подробные карты мира

• Нужно оперативно реагировать на изменение карт

• Нужно…

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

28

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

Панорамы ПробкиКарты

Спутниковые снимки Геопоиск Навигация

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

29

Как создаются сервисы

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

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

30

Но все устроено намного сложнее

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

31

Пример: доступность сервисов

• Каждому сервису соответствует слой покрытия

• Каждый слой состоит из полигонов с дырками

• Геометрия полигонов не зависит от зума

• Каждому полигону соответствует набор метаданных

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

32

Надо уметь отвечать на вопросы• Доступен ли сервис в точке?

• Существует ли покрытие заданной точки каким-либополигоном?

• Доступен ли сервис хотя бы в одной точке некоторой

области?

• Пересекается ли заданная область с каким-либополигоном?

• Какие метаданные доступны в точке?

• Какой полигон покрывает данную точку?

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

33

R-деревья

• Пространственный индекс для

выполнения запросов по

геокоординатам

• В промежуточных узлах хранятся

минимальные ограничивающие

прямоугольники

• В терминальных узлах (листьях) хранятся полигоны целиком

• При быстром поиске нужного узла и

большом числе вершин в полигоне –

большое время работы

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

34

«Нарезка» исходных полигонов

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

35

Структура хранения покрытий

• Разбиение исходных полигонов на части прямыми линиями

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

• Формирование бинарного дерева поиска

• В промежуточных узлах хранятся координата и

направление разреза

• В терминальных узлах хранятся либо части исходного

полигона

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

36

«Математика представляет искуснейшие

изобретения, способные удовлетворить

любознательность, облегчить ремѐсла и

уменьшить труд людей».

Рене Декарт

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

37

Спасибо за

внимание!