ݺߣ

ݺߣShare a Scribd company logo
Карты. Рисуем от руки
 или раскладываем в
       колоды
      Илья Таратухин
О чем расскажу?
-Откуда берутся карты

-Карта это очень много картинок

-Как же все это хранить, разворачивать, и отдавать

-Правильно храним дерево файлов в ФС

-Инструменты и наши решения
карты. рисуем от руки или раскладываем в колоды
карты. рисуем от руки или раскладываем в колоды
карты. рисуем от руки или раскладываем в колоды
карты. рисуем от руки или раскладываем в колоды
-WKT (EWKT)
-WKB (EWKB)
-GeoJSON
-KML
-GPX
-GeoRSS
...
карты. рисуем от руки или раскладываем в колоды
карты. рисуем от руки или раскладываем в колоды
zoom        тайлы

0           1

1           4

2           16

...         ...

17          4 294 967 296

18          17 179 869 184




       5 787 356
карты. рисуем от руки или раскладываем в колоды
http://trac.openstreetmap.org/browser/applications/utils/mod_tile/dir_utils.c

// 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;
}

/hash[4]/hash[3]/hash[2]/hash[1]/hash[0].png
карты. рисуем от руки или раскладываем в колоды
Вопросы?
Ad

Recommended

«Карта в браузере: путь от спутникового снимка до пользователя» – Илья Тарату...
«Карта в браузере: путь от спутникового снимка до пользователя» – Илья Тарату...
2ГИС Технологии
Python. Введение
Python. Введение
Alexey Bovanenko
Антон Корзунов «Как разместить тысячи объектов на карте без увеличения нагруз...
Антон Корзунов «Как разместить тысячи объектов на карте без увеличения нагруз...
Yandex
Избранные числовые ребусы. Калькулятор ребусов
Избранные числовые ребусы. Калькулятор ребусов
Анатолий Мячев
«Краткость - сестра таланта» в дуальных ребусах
«Краткость - сестра таланта» в дуальных ребусах
Анатолий Мячев
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
DevDay
Александр Щепановский «Почему каждому языку нужен свой _»
Александр Щепановский «Почему каждому языку нужен свой _»
DevDay
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
DevDay
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
DevDay
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
DevDay
Распределенные приложения и Azure Service Bus
Распределенные приложения и Azure Service Bus
DevDay
Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»
DevDay
App store iap. short comments
App store iap. short comments
DevDay
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
DevDay
Cоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задач
DevDay
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
DevDay
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
DevDay
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв
DevDay
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко
DevDay
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
DevDay
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
DevDay
Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»
DevDay
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
DevDay
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
DevDay
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
DevDay
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
DevDay
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
DevDay

More Related Content

Viewers also liked (16)

«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
DevDay
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
DevDay
Распределенные приложения и Azure Service Bus
Распределенные приложения и Azure Service Bus
DevDay
Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»
DevDay
App store iap. short comments
App store iap. short comments
DevDay
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
DevDay
Cоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задач
DevDay
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
DevDay
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
DevDay
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв
DevDay
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко
DevDay
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
DevDay
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
DevDay
Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»
DevDay
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
«Роль исследований в формировании продуктового видения компании», Лиза Алексе...
DevDay
Inversion of Control в деталях, Дмитрий Кожевников
Inversion of Control в деталях, Дмитрий Кожевников
DevDay
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
«Новый 2ГИС Online» — Влад Семенов, 2ГИС
DevDay
Распределенные приложения и Azure Service Bus
Распределенные приложения и Azure Service Bus
DevDay
Олег Годовых «Страх и ненависть в Event Bus»
Олег Годовых «Страх и ненависть в Event Bus»
DevDay
App store iap. short comments
App store iap. short comments
DevDay
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
DevDay
Cоздаем пробки или тюнинг postgresql для расчетных задач
Cоздаем пробки или тюнинг postgresql для расчетных задач
DevDay
«Открытая веб картография», Илья Таратухин
«Открытая веб картография», Илья Таратухин
DevDay
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
DevDay
«Хоба-хоба и в продакшн», Женя Пономарёв
«Хоба-хоба и в продакшн», Женя Пономарёв
DevDay
«Вывод продукта на новых территориях», Елизавета Алексеенко
«Вывод продукта на новых территориях», Елизавета Алексеенко
DevDay
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
DevDay
Рендеринг может больше: vue.js vs React, Андрей Солодовников
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
«Bdd и реактивщина в 2ГИС», Евгений Тютюев
DevDay
Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»
DevDay

More from DevDay (15)

«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
DevDay
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
DevDay
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
DevDay
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
DevDay
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
DevDay
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
DevDay
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
DevDay
Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»
DevDay
Frontend
Frontend
DevDay
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
DevDay
Роман Акинфеев «Разработка RESTful API with all bells and whistles»
Роман Акинфеев «Разработка RESTful API with all bells and whistles»
DevDay
Артём Кудзев «Делайте на работе то, что мотивирует»
Артём Кудзев «Делайте на работе то, что мотивирует»
DevDay
Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»
DevDay
«Автоматизация тестирования» — 2ГИС Павел Сташевский, 2ГИС
«Автоматизация тестирования» — 2ГИС Павел Сташевский, 2ГИС
DevDay
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
«Интеграция push-уведомлений в Яндекс.Браузер под iOS», Юрий Музюкин
DevDay
Devops-практики в разработке решений для бизнеса, Максим Пашук
Devops-практики в разработке решений для бизнеса, Максим Пашук
DevDay
«Велогосипед», Данил Ильиных
«Велогосипед», Данил Ильиных
DevDay
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
Манипулятор на Ti Stellaris Launchpad, Лёша Романенко
DevDay
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
DevDay
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
«Бегущий по лезвию. Продуктовые сценарии в дизайне», Макс Карпылев
DevDay
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
DevDay
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
DevDay
Матвей Мальков «Ещё один поиск контактов на Android»
Матвей Мальков «Ещё один поиск контактов на Android»
DevDay
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
Илья Беда «Как Erlang сделает ваши приложения реалтаймовыми»
DevDay
Роман Акинфеев «Разработка RESTful API with all bells and whistles»
Роман Акинфеев «Разработка RESTful API with all bells and whistles»
DevDay
Артём Кудзев «Делайте на работе то, что мотивирует»
Артём Кудзев «Делайте на работе то, что мотивирует»
DevDay
Тимофей Чаптыков «Верстальщик должен быть ленивый»
Тимофей Чаптыков «Верстальщик должен быть ленивый»
DevDay
«Автоматизация тестирования» — 2ГИС Павел Сташевский, 2ГИС
«Автоматизация тестирования» — 2ГИС Павел Сташевский, 2ГИС
DevDay
Ad

карты. рисуем от руки или раскладываем в колоды