Pt:Component overview

From OpenStreetMap Wiki
Jump to navigation Jump to search

Esta página é destinada a dar a desenvolvedores (en) uma visão técnica geral a cerca do sistema e dos componentes do OpenStreetMap.

Diagrama

OSM Components.png

Banco de dados

O banco de dados (en) modela dados de mapa como nós (en), relações (en) e vias (en).

API

A OpenStreetMap API é uma interface REST de serviço web para ler e gravar no banco de dados usando o formato XML para transmitir dados por HTTP. Usa-se simples URLs para acessar objetos, e o padrão de código de resposta HTTP.

Outros componentes OSM acessam o acessam o banco de dados por outras interfaces, também fora da Internet.

A lógica de negócio da API está toda numa mesma aplicação Ruby on Rails que é a mesma [do front end] que faz funcionar o website OpenStreetMap principal.

OSM Front End

O front end (en) web é uma aplicação Ruby on Rails — veja The Rails Port (en) — com views e modelos ao lado da API XML. Como é padrão para uma aplicação Rails, ele usa uma conexão direta com o banco de dados (não chama a API). Mas esta conectividade não é mostrada no diagrama acima.

A função principal do website é exibir o Slippy Map (en) e o editor online iD (en) e Potlatch, mas ele também lida com autenticação e auto-registro de usuários, além de páginas de usuário, traços GPS, diários de usuário, dados do navegador de Internet, e outros dados mais "crus" de variadas views de navegação e do histórico de alterações.

Slippy Map

Esta página (ou seção) precisa ser traduzida de Component_overview#Slippy Map para português.
Sua fluência em português e Component_overview#Slippy Map podem ser usados para traduzir este conteúdo.

Veja Slippy Map (en). O principal mapa que aparece na página inicial de openstreetmap.org é uma interface de usuário na linguagem Javascript, permitindo que se faça ampliação e pan ("slippy" draggable panning). O que acontece é que o website (a view "index" da aplicação Rails) invoca Leaflet. Ele faz isso passando uma par de valores latitude e longitude que é baseado no último local que o usuário tem visualizado no mapa, ou nos parâmetros da URL. Leaflet faz sua "mágica" Javascript no lado do cliente para descobrir qual tile de imagem solicitar ao servidor de tiles.

Potlatch

Potlatch (en) é um dos editores online que aparecem como opção no menu do botão "Editar". Lembrando: a aplicação em Rails tem uma view para a funcionalidade de edição online. Potlatch é um objeto Flash embutido na página web. É escrito em ActionScript. O editor Potlatch também pode ser embutido em outros sites, para permitir uma experiência de edição customizada e configurável conseguida a partir da web.

Tiles e sua renderização

Existe um processo contínuo de busca de dados de mapa que é realizado através da API, e de renderização de mapas como imagens raster chamadas tiles. Muitos tiles novos ainda precisam ser renderizados para que se alcance uma cobertura global completa, mas atualizações de dados de mapa por sua vez também requerem renderização de tiles, destinados a substituir aqueles que existiam na área de cobertura que recebe a atualização.

Mapnik

Mapnik (en) é um sistema de renderização que alimenta o visualizador de mapa que atualmente é o Slippy Map (en) padrão. O processo de renderização executa no servidor de tiles, e as imagens de tiles do Mapnik são servidas a partir daquela máquina. Este renderizador obtém os dados do banco de dados PostgresSQL (que também está na mesma máquina). Este banco de dados armazena os dados no formato que o Mapnik entende, usando extensões PostGIS (en). É um formato completamente diferente daquele do banco de dados que é usado no núcleo do servidor de banco de dados do OpenStreetMap. O banco de dados do Mapnik é populado executando-se minuciosamente o script osm2pgsql (en) em diffs (en).

Renderizadores

Como mencionado acima, usamos um software de renderização chamado Mapnik (en), para criar imagens raster destinadas a ser tiles do mapa escorregadio. Renderizadores podem também ser usados ad-hoc por você para a criação de imagens de mapa com os seus próprios dados. Existe um grande potencial para o desenvolvimento de novas maneiras de renderizar nossos dados. Saiba mais: Renderização (en).

Editores

Além dos editores online encontrados no website, existem outras ferramentas para a edição de dados OSM via API (en). Conheça a lista de editores.

Autenticação via OAuth (en) é possível por causa da API. Ela envolve o usuário conceder permissões a software de terceiros, sem entregar suas credenciais de autenticação OpenStreetMap.

Um software editor pode ter a forma de aplicação web (escrita em Flash, Javascript ou algo mais simples), aplicação desktop, ou — promissoramente — aplicação móvel.

Warning: Default sort key "Visao geral dos componentes" overrides earlier default sort key "Component overview".