SlideShare a Scribd company logo
1 of 28
Download to read offline
Путь карты от спутникового
снимка до пользователя
Илья Таратухин, 2ГИС
План
● Терминология
● Сбор и подготовка данных
● Backend
● Frontend
Терминология
Терминология
Карты
● растровые
● векторные
Терминология
Геообъекты:
● точечные
● линейные
● площадные
Терминология
Геокодирование
● прямое (объекты)
● обратное (координаты)
Терминология
API карт - Библиотека для работы с картографическими данными
● Тайлы
● Слои (overlay)
○ Маркер
○ Балун (каллаут)
○ POI
● Проекции
Терминология
Системы координат (проекции)
● Географическая
● Проекция меркатора (UTM, эллипсоид WGS84)
○ Проекция EPSG:3857 (тайлы)
○ Проекция EPSG:4326 (данные)
Сбор и подготовка данных
Сбор и подготовка данных
● Спутниковые снимки
● Выверка пешими специалистами
● Обзвон компаний
● GPS треки
Как стать самым востребованной ГИС?
Актуальность и полнота данных!
Backend
Backend
Задачи бекенда
● прямое и обратное геокодирование
● поиск точек интереса (POI)
● отдача статики
Backend
Инструменты для работы с динамическими данными
● Большой комбайн за деньги
● Дайте OpenSource, яжпрограммист
Backend
Инструменты для работы с динамическими данными
● PostgreSQL + PostGIS
● MySQL + Spatial Data
● Можно написать свои
Backend
Проблемы статики
● файлов много
● файлы маленькие (1-15кб)
● на файловой системе хочется положить много файлов рядом
● файлов реально много (68 719 476 736 на zoom 18)
● очень много маленьких файлов, которые занимают места меньше
размера кластера, просят указатель и которые хочется положить в один
каталог
Backend
Инструменты для работы со статикой
● Распределенная ФС (например Ceph)
● Squashfs
● NoSQL (MongoDB + MongoFS)
● Nginx + ФС
Backend
Раздать статику с помощью FS? Реализуемо!
● отключаем журналирование
● уменьшаем размер кластера
● разворачиваем пути, например /z/x/y.png можно разложить в /hash[4]
/hash[3]/hash[2]/hash[1]/hash[0].png (mod_tile от OSM)
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
Frontend
Frontend
Задачи фронтенда
● Визуализация данных
● Взаимодействие с пользователем
Frontend
Инструменты
● Leaflet
● OpenLayers
Крупнейшие игроки на рынке
● Cloudmate
● Mapbox
● OpenStreetMap
● Google
Вопросы?

More Related Content

What's hot (7)

Tarantool_qs
 Tarantool_qs Tarantool_qs
Tarantool_qs
 
Виртуальная память
Виртуальная памятьВиртуальная память
Виртуальная память
 
Thumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - DatasetThumbtack Expertise Days # 5 - Dataset
Thumbtack Expertise Days # 5 - Dataset
 
Скрытые закономерности в разработке ПО
Скрытые закономерности в разработке ПОСкрытые закономерности в разработке ПО
Скрытые закономерности в разработке ПО
 
Пространственные характеристики
Пространственные характеристикиПространственные характеристики
Пространственные характеристики
 
mri ruby GC
mri ruby GCmri ruby GC
mri ruby GC
 
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритм...
 

Viewers also liked

DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев СергейDUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
it-people
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
2ГИС Технологии
 
Автоматизация тестирования как сервис
Автоматизация тестирования как сервисАвтоматизация тестирования как сервис
Автоматизация тестирования как сервис
automated-testing.info
 

Viewers also liked (9)

«Произвольная смена дизайна системного скроллбара», Дмитрий Кузнецов
«Произвольная смена дизайна системного скроллбара», Дмитрий Кузнецов«Произвольная смена дизайна системного скроллбара», Дмитрий Кузнецов
«Произвольная смена дизайна системного скроллбара», Дмитрий Кузнецов
 
Вадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИСВадим Шашенко, 2ГИС
Вадим Шашенко, 2ГИС
 
Codefest2014 trends
Codefest2014 trendsCodefest2014 trends
Codefest2014 trends
 
DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев СергейDUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
DUMP-2013 Serverside - Разработка развесистого API - Коржнев Сергей
 
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
«Построение Read Model-ей с использованием потоков событий» — Денис Иванов, 2ГИС
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
 
Суперсилы Chrome developer tools
Суперсилы Chrome developer toolsСуперсилы Chrome developer tools
Суперсилы Chrome developer tools
 
Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»
 
Автоматизация тестирования как сервис
Автоматизация тестирования как сервисАвтоматизация тестирования как сервис
Автоматизация тестирования как сервис
 

Similar to «Карта в браузере: путь от спутникового снимка до пользователя» – Илья Таратухин, 2ГИС

Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
Anton Gorokhov
 
тема 03 картографические и геоинформационные структуры данных
тема 03 картографические и геоинформационные структуры данныхтема 03 картографические и геоинформационные структуры данных
тема 03 картографические и геоинформационные структуры данных
Andrey Lepikhov
 
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
it-people
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
Vladimir Klimontovich
 
Константин Осипов (Mail.Ru)
Константин Осипов (Mail.Ru)Константин Осипов (Mail.Ru)
Константин Осипов (Mail.Ru)
Ontico
 
Dubinin opendataschool intro2
Dubinin opendataschool intro2Dubinin opendataschool intro2
Dubinin opendataschool intro2
Olga Romanova
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
Andrew Panfilov
 

Similar to «Карта в браузере: путь от спутникового снимка до пользователя» – Илья Таратухин, 2ГИС (20)

Принципы и методы координатной привязки и трансформирование снимков в ГИС-пак...
Принципы и методы координатной привязки и трансформирование снимков в ГИС-пак...Принципы и методы координатной привязки и трансформирование снимков в ГИС-пак...
Принципы и методы координатной привязки и трансформирование снимков в ГИС-пак...
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
 
тема 03 картографические и геоинформационные структуры данных
тема 03 картографические и геоинформационные структуры данныхтема 03 картографические и геоинформационные структуры данных
тема 03 картографические и геоинформационные структуры данных
 
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
А. Зиновьев "Big data algorithms and data structures for large scale graphs",...
 
Big data algorithms and data structures for large scale graphs
Big data algorithms and data structures for large scale graphsBig data algorithms and data structures for large scale graphs
Big data algorithms and data structures for large scale graphs
 
ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop ADD2010: Обработка большого объема данных на платформеApache Hadoop
ADD2010: Обработка большого объема данных на платформеApache Hadoop
 
09 - Hadoop. Pig
09 - Hadoop. Pig09 - Hadoop. Pig
09 - Hadoop. Pig
 
Бинарный анализ с декомпиляцией и LLVM
Бинарный анализ с декомпиляцией и LLVMБинарный анализ с декомпиляцией и LLVM
Бинарный анализ с декомпиляцией и LLVM
 
Бинарный анализ с декомпиляцией и LLVM
Бинарный анализ с декомпиляцией и LLVMБинарный анализ с декомпиляцией и LLVM
Бинарный анализ с декомпиляцией и LLVM
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
 
Php Conf2007 Mapscript
Php Conf2007 MapscriptPhp Conf2007 Mapscript
Php Conf2007 Mapscript
 
Hadoop > cascading -> cascalog (short version)
Hadoop  > cascading -> cascalog (short version)Hadoop  > cascading -> cascalog (short version)
Hadoop > cascading -> cascalog (short version)
 
Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"
 
Biatov A.P. "GIS for zoologists" - the Institute of Zoology NAS of Ukraine, K...
Biatov A.P. "GIS for zoologists" - the Institute of Zoology NAS of Ukraine, K...Biatov A.P. "GIS for zoologists" - the Institute of Zoology NAS of Ukraine, K...
Biatov A.P. "GIS for zoologists" - the Institute of Zoology NAS of Ukraine, K...
 
Дмитрий Прокопцев "Memory-mapped storage: ещё один подход к сериализации данных"
Дмитрий Прокопцев "Memory-mapped storage: ещё один подход к сериализации данных"Дмитрий Прокопцев "Memory-mapped storage: ещё один подход к сериализации данных"
Дмитрий Прокопцев "Memory-mapped storage: ещё один подход к сериализации данных"
 
Константин Осипов (Mail.Ru)
Константин Осипов (Mail.Ru)Константин Осипов (Mail.Ru)
Константин Осипов (Mail.Ru)
 
Dubinin opendataschool intro2
Dubinin opendataschool intro2Dubinin opendataschool intro2
Dubinin opendataschool intro2
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван Панченко
 
Алгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиАлгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерности
 

«Карта в браузере: путь от спутникового снимка до пользователя» – Илья Таратухин, 2ГИС