Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Терминология

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Терминология API карт - Библиотека для работы с картографическими данными ● Тайлы ● Слои (overlay) ○ Маркер ○ Балун (каллаут) ○ POI ● Проекции

Slide 8

Slide 8 text

Терминология Системы координат (проекции) ● Географическая ● Проекция меркатора (UTM, эллипсоид WGS84) ○ Проекция EPSG:3857 (тайлы) ○ Проекция EPSG:4326 (данные)

Slide 9

Slide 9 text

Сбор и подготовка данных

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Сбор и подготовка данных ● Спутниковые снимки ● Выверка пешими специалистами ● Обзвон компаний ● GPS треки

Slide 14

Slide 14 text

Как стать самым востребованной ГИС?

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Backend

Slide 17

Slide 17 text

Backend Задачи бекенда ● прямое и обратное геокодирование ● поиск точек интереса (POI) ● отдача статики

Slide 18

Slide 18 text

Backend Инструменты для работы с динамическими данными ● Большой комбайн за деньги ● Дайте OpenSource, яжпрограммист

Slide 19

Slide 19 text

Backend Инструменты для работы с динамическими данными ● PostgreSQL + PostGIS ● MySQL + Spatial Data ● Можно написать свои

Slide 20

Slide 20 text

Backend Проблемы статики ● файлов много ● файлы маленькие (1-15кб) ● на файловой системе хочется положить много файлов рядом ● файлов реально много (68 719 476 736 на zoom 18) ● очень много маленьких файлов, которые занимают места меньше размера кластера, просят указатель и которые хочется положить в один каталог

Slide 21

Slide 21 text

Backend Инструменты для работы со статикой ● Распределенная ФС (например Ceph) ● Squashfs ● NoSQL (MongoDB + MongoFS) ● Nginx + ФС

Slide 22

Slide 22 text

Backend Раздать статику с помощью FS? Реализуемо! ● отключаем журналирование ● уменьшаем размер кластера ● разворачиваем пути, например /z/x/y.png можно разложить в /hash[4] /hash[3]/hash[2]/hash[1]/hash[0].png (mod_tile от OSM)

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Frontend

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Frontend Инструменты ● Leaflet ● OpenLayers

Slide 27

Slide 27 text

Крупнейшие игроки на рынке ● Cloudmate ● Mapbox ● OpenStreetMap ● Google

Slide 28

Slide 28 text

Вопросы?