RU:Tiles@home

From OpenStreetMap Wiki
Jump to navigation Jump to search

Описание

Tiles@home (сокращенно: T@H или tah) это программа распределенного рендеринга osmarender карт. С ее помощью создаются уровни osmarender, maplint и captionless. Уровень Mapnik проходит рендеринг отдельно, на других компьютерах иным способом.

Как это работает?

T@H включает в себя серверное программное обеспечение, Tahngo (generation 2), запущенное на Tiles@home website и получающее запросы на рендеринг (отрисовку) плиток на основе обновленной картографической информации. Есть много людей [1], запускающих клиентское программное обеспечение у себя на компьютерах, которое обращается на сервер с запросом "какую плитку необходимо обработать?" и отправляет затем результаты своей работы обратно на сервер.


Просмотр карт

Плитки уровня osmarenderer (tiles@home), полученные с помощью вышеописанного способа используются на следующих страницах:

Выберите тип рендера на карте
  • На главной карте http://www.openstreetmap.org Slippy Map, нажмите значок + в верхнем правом углу и выберите "Osmarender" чтобы увидеть плитки.
  • Map browser — браузер быстрой (slippy map) карты. Включает возможность запрашивать отрисовку плиток через статический браузер карты, который не использует быструю (slippy map) карту.
  • Браузер карты, браузер карты без быстрой отрисовки (a non-slippy map browser). Обладает возможностью ручного запроса отрисовки плиток.
  • InformationFreeway Полноэкранная быстрая (slippy) карта, включающая информацию с сервера первичной разработки и отрисовки плиток. Есть возможность ручного запроса отрисовки плиток. Также поддерживает постоянную ссылку на слой tiles@home.

Детали

Для получения общей информации, см. ссылку Информация о компонентах OpenStreetMap (агл.).

Данные из различных источников поступают в базу данных OpenStreetMap. В случае, если данные по какой-либо области изменились, то такая область ставится в очередь запросов на сервере T@H. Кроме того, пользователи могут запрашивать рендеринг области вручную. Каждый клиент T@H, подключенный к серверу запрашивает плитки, которые необходимо отрендерить. Задачи определяются плитками 12 уровня детализации. Такие задачи забираются клиентами, обрабатываются (рендеринг) на уровнях с 12 по 17 и загружают пакет готовых PNG изображений на сервер. Эти изображения затем используются для прорисовки карты slippy. Плитки с уровнем менее 12 склеиваются сервером друг с другом на основе загруженных плиток с уровнем 12 (captionless).

Сервер t@h tahngo (generation 2) написан с использованием django (python framework).

Запрос повторного рендеринга

Плитки на сервере tiles@home автоматически перезапрашиваются для рендеринга при получении соответствующего вызова об изменениях от api, таким образом большинство изменений отобразятся на карте через 2-4 часа без какого-либо вмешательства. Однако некоторые плитки нужно запросить вручную вследствие существования ошибок.

  • Вы можете сделать это на http://informationfreeway.org на 12 уровне зума, нажав клавишу "r" для запроса рендеринга, или клавишу "i" для запроса информации о состоянии рендеринга, текущем исполнителе рендеринга, размере и прочих деталях.
  • Чтобы настроить своё ПО для обновлений запросов, прочтите раздел Tiles@home/APIs.

Существует система приоритета, которая определяет то, что запрошенные вручную плитки будет рендериться раньше плиток, запрошенных автоматически. В зависимости от длины очереди задач и сложности вашей плитки, этот процесс займёт от пяти минут до нескольких часов. Вы не будете оповещены о том, что рендеринг вашей плитки завершился.

Выполнение очень большого количество "ручных" запросов за раз (в случае, если их имитирует скрипт, например) автоматически снижает приоритет этих запросов до тех пор, пока не освободится место в очереди задач. Разумеется, эти запросы будут исполнены, но не с таким высоким приоритетом, как обычные запросы вручную.

Смотрите также

Статус

Сообщения клиента tiles@home об изменениях и анонсах. См. также статью Tiles@home/Server о сообщениях статуса сервера.

Статистика

Чтобы увидеть больше статистики, посетите следующие сайты


Как работает клиент?

Если клиент получает запрос на плитку:

Рендеринг при зуме слоя от 12 до 17

  • Данные OSM, содержащиеся на территории, покрываемой плиткой на 12-м уровне зума, загружаются все сразу, через API, как структура данных XML.
  • Рекурсивная функция используется для генерации SVG-графики на уровнях зума 12, 13, 14, 15, 16 и 17 (что выполняет osmarender).
    • Для каждого уровня зума создаётся огромное PNG-изображение, которое затем разбивается на небольшие PNG-плитки.
  • Отдельный процесс архивирует каждый набор плиток в zip-файл, а затем загружает их в слой на сервер tiles@home.

Рендеринг при зуме слоя от 6 до 11

Это описание ссылается на статью "низкий зум", создаваемый и клиентом и сервером.

  • После того, как слой данных для зума 12 сгенерирован, создаётся его дубликат, лишённый каких-либо подписей на картах. Этот дубликат затем используется в качестве базового слоя для отрисовки всех уровней приближений от 11 до 0.
  • Этот процесс включает три шага:
    1. На стороне клиента создаётся и загружается набор прозрачных плиток, содержащих только подписи к карте (названия городов, морей и т. д.). Для этого используется тот же метод, что и при генерации слоёв от 12 до 17 уровней зума. Такой слой называется caption layer (слоем подписей). Если конкретная территория пуста, будет создан полностью прозрачный файл.
    2. На стороне сервера создаётся набор плиток без подписей, с использованием метода объединения тайлов. В качестве основы используются данные лишённого подписей дубликата слоя при зуме 12. Результат называется captionless layer (слоем без подписей).
    3. Наконец, tile layer (слой плитки) создаётся путём наложения слоя подписей поверх слоя без подписей на серевере.

В данный момент, вы можете направить запрос на помощь серверу в обработке слоя надписей с минимальным зумом 6. Проблема в том, что обычные клиенты t@h не сконфигурированы для создания слоя подписей и они не будут создавать наборы плиток для уровней зума 6-11.


Рендеринг при зуме слоя от 0 до 5

Каждый слой создаётся за счёт объединения тайлов предыдущего уровня зума (начиная с шестого). На данный момент это делается вручную.

Как Вы можете помочь?

Запуск клиента

Вы можете запустить клиентскую программу, которая отрендерит некоторые карты и загрузит их обратно на наш сервер. Программа имеет интерактивный режим, но скорее всего вы будете запускать ее в полностью автоматическом режиме.

  • Для установки на Windows используйте автоматическую установку (анг.). Инструкции для ручной инсталяции можно найти тут.
  • Ваш OSM аккаунт будет использоваться для загрузки отрендеренных карт.
  • Вы можете установить Tiles@home на ваш компьютер, следуя следующей инструкции (анг.). Будьте внимательны, заставить ее работать сложно.
  • Вы можете скачать готовую виртуальную машину, где все уже установлено. Вы можете запустить виртуальную машину на Windows, Linux или на Max PC при помощи VirtualBox. Рендеринг проходит в фоновом процессе и вы можете продолжать свою обычную работу за компьютером. Смотри Virtual Tiles@Home (анг.).
  • Есть предварительный файл настроек для установки виртуальной машины на Fedora 9 (x86_64) для tiles@home рендеринга в котором многое автоматизировано. Инструкции ищите тут (англ.).
  • Ведется разработка AMI (Amazon Machine Image) для Amazon's Elastic Compute Cloud (EC2) (последнее обновление 2009-07-19). Это среда Fedora со всеми необходимыми проинсталлированными программами. Запустите экземпляр "ami-cb39d8a2", войдите под root-ом через SSH, и вы увидите инструкции (см. также "Running the program" в инструкции по установке). Если у вас возникли вопросы, пишите на английском Larry Gilbert.

Обслуживаение изображений плиток

Нам нужно больше выделенных серверов для роста.

Разработка клиента

Помогите в разработке клиентской программы, вебсайта или вспомогательных инструментов.

Разработка сервера

Администрирование

Раздел для инфраструктуры t@h зависящей от администраторов проекта. Нуждается в дополнении о том, у кого есть доступ, кто что делает, на основе данных OSM API из Сети


Обсуждение в мейллистах