Como criar servidor de tile a partir dos dados do Openstreetmap para iniciantes?

11

Sou iniciante no GIS e estou desenvolvendo um aplicativo Java que precisa de um mapa. (O mapa seria especificamente de apenas uma cidade nas Filipinas.) Pesquisei maneiras diferentes de fazer isso e descobri que precisarei de um servidor lado a lado para colocar o mapa, pois preciso poder acessá-lo sem o conexão da internet. Sou iniciante e a maioria dos tutoriais que vi foram complicados e têm etapas que ainda não sei fazer. Alguém conhece algum tutorial ou pode me ajudar a começar a criar o servidor lado a lado, considerando que eu sou iniciante nisso?

meebee
fonte
Ele precisa estar em Java?
RK

Respostas:

9

Existe um site muito bom para iniciantes sobre o mundo do OpenStreetMap focado em pessoas provenientes de outros serviços de mapeamento que podem se encaixar na sua pergunta: http://switch2osm.org/serving-tiles/

Mas se você deseja criar alguns blocos para serem exibidos offline, algo como http://www.maptiler.org/, mas é focado em dados rasterizados.

Se eu tivesse que fazer isso, provavelmente daria uma olhada no TileMill para criar o design e produzir um arquivo MBTiles e depois convertê- lo em uma estrutura de arquivo TMS para ser consumida por um OpenLayers ou Leaflet no modo offline.

Sim, é bastante complicado e muitas coisas novas (mas emocionantes!), Desculpe.

Jorge Sanz
fonte
Olá, obrigado por responder. Se eu baixei todos os blocos necessários, como posso usá-los para serem mapeados no meu aplicativo Java? Desculpe, eu sou iniciante nisso. O mapa estará apenas offline. Eu usei a biblioteca Geotools para colocar um mapa no meu aplicativo Java, mas ele consiste apenas em shapefiles. Por isso, pensei em um servidor lado a lado, mas offline.
7243 meebee
Não tenho idéia se existe um driver no GeoTools para uma estrutura TMS. Gostaria de postar uma nova pergunta com uma descrição mais precisa, para que as pessoas possam apontá-lo melhor.
Jorge Sanz
4

Para uma única cidade, Tilemill e Tile Drawer são duas ótimas opções: http://switch2osm.org/serving-tiles/using-an-all-in-one-solution/

O Tilemill exibirá um arquivo '.mbtiles', um banco de dados SQLite3 que contém todos os seus blocos renderizados. Você também precisará desenvolver uma folha de estilo personalizada para os dados.

O Draw Drawer fará essencialmente tudo por você, resultando em um servidor EC2 que você pode usar para fazer a renderização real de seus tiles. Se você acessar o servidor e executar tilestache-seed.py na sua área, poderá obter um diretório cheio de imagens de bloco pré-renderizadas que podem ser copiadas para onde você precisar.

Michal Migurski
fonte
2

Como você é iniciante, sugiro que você use o OpenGeo Suite. Ele vem com o GeoServer (servidor de mapas) e PostGIS (banco de dados espacial). É um pacote integrado para que você não precise se preocupar com a integração ainda. Sugiro que você faça os tutoriais primeiro e, quando estiver confiante o suficiente, tente seus próprios dados ou dados OSM . Ele possui um carregador de arquivos de forma, portanto não deve ser muito difícil. Boa sorte :)

RK
fonte
2

Se bem entendi, você deseja colocar os blocos no mesmo computador em que o aplicativo Java será executado. Nesse caso, você realmente não precisa de um servidor da Web em mosaico por si só, apenas precisa preparar o HTML do seu mapa da Web e colocá-lo em um disco local junto com os mosaicos do mapa. Você pode acessá-lo usando o esquema de URI do arquivo .

Uma maneira bastante fácil de gerar blocos seria seguir o " Tutorial Maperitivo: Um Mapa da Web para Caminhadas em Dez Etapas Fáceis ".

Igor Brejc
fonte
Olá, obrigado por responder. Se eu baixei todos os blocos necessários, como posso usá-los para serem mapeados no meu aplicativo Java? Desculpe, eu sou iniciante nisso. O mapa estará apenas offline. Eu usei a biblioteca Geotools para colocar um mapa no meu aplicativo Java, mas ele consiste apenas em shapefiles. Por isso, pensei em um servidor lado a lado, mas offline.
meebee
Não posso ajudá-lo muito com Java, e isso também depende muito do que você precisa fazer com o mapa. Você pode dar uma olhada no código fonte do JOSM, é o aplicativo de mapeamento OSM de código aberto escrito em Java.
Igor Brejc