Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

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

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

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

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

Tech Talks @NSU

December 15, 2015
Tweet

More Decks by Tech Talks @NSU

Other Decks in Education

Transcript

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

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

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

    специалистами • Обзвон компаний • GPS треки
  4. Backend Инструменты для работы с динамическими данными • PostgreSQL +

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

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

    • уменьшаем размер кластера • разворачиваем пути, например /z/x/y.png можно разложить в /hash[4] /hash[3]/hash[2]/hash[1]/hash[0].png (mod_tile от OSM)
  7. 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