Карта в браузере: путь от спутникового снимка до пользователя

Карта в браузере: путь от спутникового снимка до пользователя

Илья Таратухин (2ГИС) рассказывает про карты в браузере

«Жизнь современного человека непредставима без электронных карт. Путешествуя по незнакомым местам, мы полагаемся на навигатор, а выходя с работы проверяем в онлайне наличие пробок. И если раньше для полноценной работы с картами необходимо было громоздкое нативное приложение, то сейчас легковесная карта города доступна прямо в браузере и запросто открывается даже на вашем смартфоне.

В этой лекции мы разберемся с тем, как собираются картографические данные, почему OpenStreetMap — гораздо более важный проект, чем может показаться (и какие у него есть проблемы), и почему в Новосибирске бесспорным лидером является 2ГИС, а в Москве Google и Яндекс крепко держат свои позиции.

Также мы затронем технологические вопросы хранения и отображения карт (преимущественно в применении к вебу) и эволюцию всего этого на примере онлайн-версии 2ГИС.»

Подробности на http://techtalks.nsu.ru

E51d363aa46f4d059d54a15e0bcd8e6f?s=128

Tech Talks @NSU

December 15, 2015
Tweet

Transcript

  1. Путь карты от спутникового снимка до пользователя Илья Таратухин, 2ГИС

  2. План • Терминология • Сбор и подготовка данных • Backend

    • Frontend
  3. Терминология

  4. Терминология Карты • растровые • векторные

  5. Терминология Геообъекты: • точечные • линейные • площадные

  6. Терминология Геокодирование • прямое (объекты) • обратное (координаты)

  7. Терминология API карт - Библиотека для работы с картографическими данными

    • Тайлы • Слои (overlay) ◦ Маркер ◦ Балун (каллаут) ◦ POI • Проекции
  8. Терминология Системы координат (проекции) • Географическая • Проекция меркатора (UTM,

    эллипсоид WGS84) ◦ Проекция EPSG:3857 (тайлы) ◦ Проекция EPSG:4326 (данные)
  9. Сбор и подготовка данных

  10. None
  11. None
  12. None
  13. Сбор и подготовка данных • Спутниковые снимки • Выверка пешими

    специалистами • Обзвон компаний • GPS треки
  14. Как стать самым востребованной ГИС?

  15. Актуальность и полнота данных!

  16. Backend

  17. Backend Задачи бекенда • прямое и обратное геокодирование • поиск

    точек интереса (POI) • отдача статики
  18. Backend Инструменты для работы с динамическими данными • Большой комбайн

    за деньги • Дайте OpenSource, яжпрограммист
  19. Backend Инструменты для работы с динамическими данными • PostgreSQL +

    PostGIS • MySQL + Spatial Data • Можно написать свои
  20. Backend Проблемы статики • файлов много • файлы маленькие (1-15кб)

    • на файловой системе хочется положить много файлов рядом • файлов реально много (68 719 476 736 на zoom 18) • очень много маленьких файлов, которые занимают места меньше размера кластера, просят указатель и которые хочется положить в один каталог
  21. Backend Инструменты для работы со статикой • Распределенная ФС (например

    Ceph) • Squashfs • NoSQL (MongoDB + MongoFS) • Nginx + ФС
  22. Backend Раздать статику с помощью FS? Реализуемо! • отключаем журналирование

    • уменьшаем размер кластера • разворачиваем пути, например /z/x/y.png можно разложить в /hash[4] /hash[3]/hash[2]/hash[1]/hash[0].png (mod_tile от OSM)
  23. Backend /hash[4]/hash[3]/hash[2]/hash[1]/hash[0].png // We attempt to cluster the tiles so

    that a 16x16 square of tiles will be in a single directory // Hash stores our 40 bit result of mixing the 20 bits of the x & y co-ordinates // 4 bits of x & y are used per byte of output unsigned char i, hash[5]; for (i=0; i<5; i++) { hash[i] = ((x & 0x0f) << 4) | (y & 0x0f); x >>= 4; y >>= 4; } https://github.com/openstreetmap/mod_tile/blob/master/src/store_file_utils.c
  24. Frontend

  25. Frontend Задачи фронтенда • Визуализация данных • Взаимодействие с пользователем

  26. Frontend Инструменты • Leaflet • OpenLayers

  27. Крупнейшие игроки на рынке • Cloudmate • Mapbox • OpenStreetMap

    • Google
  28. Вопросы?