RU:Обзор компонентов OSM

From OpenStreetMap Wiki
Jump to navigation Jump to search

Данная страница содержит технический обзор логической структуры/компонентов проекта OpenStreetMap.

Диаграмма

OSM Components.png

База данных (Database)

База данных содержит все данные карт в виде точек, линий и областей. Подробнее смотри схему базы данных.

API

OSM API (также называемый "Протокол") -- это REST-интерфейс для чтения и записи данных в базу данных. Это означает, что в нём используется обмен XML-данными поверх протокола HTTP, простые URL-адреса для доступа к объектам и стандартные HTTP-методы.

Остальные компоненты OSM получают доступ к базе данных через этот интерфейс. Протокол также позволяет подключаться к базе данных через Интернет.

Всё API реализовано в рамках одного приложения на Ruby on Rails работающего в качестве OSM-интерфейса к web-сайту.

Интерфейс OSM

Веб-сайт OSM написан с помощью Ruby on Rails. Он включает в себя функции логина, используя прямое соединение к базе данных пользователей (не показано на диаграмме). Основные функции сайта — это отображение подвижной карты (Slippy Map) на вкладке "Карта", а также для аутентифицированных пользователей — онлайн редактор Potlatch на вкладке "Правка".

Подвижная карта Slippy Map

Подробнее смотри RU:Slippy Map. Это то, что изображает карту. Используется технология AJAX, которая позволяет масштабировать и перемещать карту.

Онлайн редактор Potlatch

Potlatch — это онлайн редактор, доступный на вкладке "Правка". Ипользует Flash.

Рендеринг (Tiles and tile rendering)

Это постоянный процесс над данными карты, в ходе которого карта преобразуется в растровое изображение. Именно его вы видите на сайте. Каждое изменение, которое вносится в базу данных, должно быть отрендерено (переведено в растровый формат) для того, чтобы из можно было увидеть на сайте.

Mapnik

Mapnik это система рендеринга, которая отображает карту по умолчанию. Процесс рендеринга запускается на специальном сервере. Изображения генерятся и отображаются впоследствии с этого сервера. Этот рендер берет данные из еженедельной резервной копии базы данных — Planet.osm.

Tiles@home

Tiles@home это распределенная система рендеринга. Она использует Osmarender систему рендеринга (XSLTs), которая работает на множестве клиентских машин. Она берет свежие данные через протокол из базы данных и на из основе генерирует изображение, которое впоследствии обратно закачивается на сервер.

Рендеры (Renderers)

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

Редакторы (Editors)

Наряду с вкладкой редактирования на веб-сайте (Potlach), существуют другие инструменты, автономные приложения и другие сайты, которые позволяют редактировать данные OSM через API — например JOSM, Merkaartor.